查看: 707|回复: 7
|
combine server side code 去html时出现error
[复制链接]
|
|
我想要combine server side的code去html。。但出现error..可以帮我看看吗?
如果我放 Imports System.Data 就会出现以下的error page!
error : Compiler Error Message: BC30465: 'Imports' statements must precede any declarations.
如果我放 Dim MyConn As New OdbcConnection(ConnStr) 就会出现以下的error page!
Compiler Error Message: BC30002: Type 'OdbcConnection' is not defined.
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="result.aspx.vb" Inherits="AAMS.result"%>
<script language="VB" runat="server">
Imports System.Data
Imports System.Data.Odbc
Dim ConnStr As String = "DSN=AAMS;UID=root WD=821208"
Dim MyConn As New OdbcConnection(ConnStr)
Dim Str As String, errormsg As String, InStr As String, InStr2 As String
Dim cmd As New OdbcCommand(Str, MyConn)
Dim cmdreader As OdbcDataReader
Dim existed As Boolean
Str = "SELECT * FROM auction_properties WHERE code = 'HH1234'"
cmd.CommandText = Str
Try
MyConn.Open()
cmdreader = cmd.ExecuteReader()
</script>
[ 本帖最后由 一只优雅的猪 于 7-6-2006 10:04 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 7-6-2006 07:09 PM
|
显示全部楼层
为什么你用code behind... 又把VB 部分embed在aspx???
code behind的import写法是imports system.data.odbc
但在aspx的import写法是
<%@ import namespace="system.data.odbc" %>
改一改吧... :) |
|
|
|
|
|
|
|

楼主 |
发表于 7-6-2006 10:08 PM
|
显示全部楼层
谢了,我已经移除<%@ Page Language="vb" AutoEventWireup="false" Codebehind="result.aspx.vb" Inherits="AAMS.result"%>
但想请问下这行一定要移除的吗?
另外,新的问题出现了
Compiler Error Message: BC30188: Declaration expected
Str = "SELECT * FROM auction_properties WHERE code = 'HH1234'"
但是明明我就是有declare啊!!
Dim Str As String |
|
|
|
|
|
|
|
发表于 7-6-2006 11:11 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 8-6-2006 08:15 AM
|
显示全部楼层
1) 当我这样写就ok了
Dim Str as string = "SELECT * FROM auction_properties WHERE code = '1234'"
但是error 就出现在下一行
cmd.CommandText = Str
Compiler Error Message: BC30188: Declaration expected.
2) 其实我想能不能够execute QUERY in result.aspx.vb,然后在display query result in html.. 大致上像这样
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="result.aspx.vb" Inherits="AAMS.result"%>
<html><head></head>
<body>
<% For x= 1 To cmd.fieldcount - 1 %>
<table>
<td><tr><%= cmd.reader("name")</td>
<td><tr><%= cmd.reader("age")</td>
</table>
</table>
<% Next>
</body></html>
而我是透过以下的code来execute query的
Public Function load_data(ByVal fullcode As String) As Boolean
Dim code, no As String
Dim existed As Boolean
Str = "SELECT * FROM item WHERE code ='"+fullcode+"'
cmd.CommandText = Str
Try
MyConn.Open()
cmdreader = cmd.ExecuteReader()
While cmdreader.Read
For x = 1 to cmd.fieldcount - 1
name = cmd.reader("name")
age = cmd.reader("age")
next
End While
cmdreader.Close()
Catch ex As Exception
errormsg = ex.Message
Finally
If Not MyConn Is Nothing Then
MyConn.Close()
End If
End Try
Return existed
End Function
[ 本帖最后由 一只优雅的猪 于 8-6-2006 12:53 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 8-6-2006 02:47 PM
|
显示全部楼层
原帖由 一只优雅的猪 于 8-6-2006 08:15 AM 发表
1) 当我这样写就ok了
Dim Str as string = "SELECT * FROM auction_properties WHERE code = '1234'"
但是error 就出现在下一行
cmd.CommandText = Str
Compiler Error Message: BC30188: Dec ...
1) 其实问题还是一样出现在 Str 里... 对于数字... 不必放 ' '... 试试看把 ' ' 删除...
2) 你可以在html part加入vb code... 但给的例子应该行不通... 为何你不要使用datagrid, gridview, datalist, reapeter等等的data control呢??? |
|
|
|
|
|
|
|

楼主 |
发表于 8-6-2006 03:02 PM
|
显示全部楼层
我的情况是因为datagrid等control不适合用在我的application
因为我要呈现的query result是这样
Name : Michael Age : 29
Address : 123, Tmn Heaven , Jalan dot net, 99999 KL
Name : Jack Age : 31
Address : 222, Tmn Heaven , Jalan dot net, 99999 KL
Name : Cindy Age : 19
Address : 456, Tmn Heaven , Jalan dot net, 99999 KL
Name : Man Age : 49
Address : 672, Tmn Heaven , Jalan dot net, 99999 KL
所以我觉得用table会比较好... 对吗 |
|
|
|
|
|
|
|
发表于 8-6-2006 11:03 PM
|
显示全部楼层
原帖由 一只优雅的猪 于 8-6-2006 03:02 PM 发表
我的情况是因为datagrid等control不适合用在我的application
因为我要呈现的query result是这样
Name : Michael Age : 29
Address : 123, Tmn Heaven , Jalan dot net, 99999 KL
Name ...
你可以用repeater配合table... code 大概是这样...
<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="system.data.oledb" %>
<script runat="server">
sub page_load(source as object, e as eventargs)
Dim strConn as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("blog.mdb") & ";"
Dim MySQL as string = "SELECT * FROM blog"
Dim MyConn as New OleDBConnection (strConn)
Dim Cmd as New OleDBCommand (MySQL, MyConn)
MyConn.Open ()
Repeater1.DataSource = Cmd.ExecuteReader
Repeater1.DataBind()
MyConn.Close()
end sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:Repeater id="Repeater1" runat="server">
<itemtemplate>
<table height="150" width="300">
<tbody>
<tr>
<td valign="top">
Name: <%# container.dataitem("Title") %>
<br />
<br />
<div align="left">Message: <%# container.dataitem("Message") %>
</div>
</td>
<td valign="top">
Age: <%# container.dataitem("BlogID") %>
</td>
</tr>
</tbody>
</table>
</itemtemplate>
</asp:Repeater>
</form>
</body>
</html>
把code的红色的部分改成适合你的database的code... :) |
|
|
|
|
|
|
| |
本周最热论坛帖子
|