佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 707|回复: 7

combine server side code 去html时出现error

[复制链接]
发表于 7-6-2006 06:01 PM | 显示全部楼层 |阅读模式
我想要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=rootWD=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 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 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 | 显示全部楼层
原帖由 一只优雅的猪 于 7-6-2006 10:08 PM 发表
谢了,我已经移除<%@ Page Language="vb" AutoEventWireup="false" Codebehind="result.aspx.vb" Inherits="AAMS.result"%>

但想请问下这行一定要移除的吗?
...


你不必整行delete... 只要delete Codebehind="result.aspx.vb" Inherits="AAMS.result"就行了...

至于sql string的问题... 说起来很长... 请参考这里>> http://aspnet101.com/aspnet101/tutorials.aspx?id=2

研究了以上的文章后... 再去研究parameterized queries... parameter是比较好的方法... 建议使用... 也不必去理会什么single qoute 和double quote的问题...
http://aspnet101.com/aspnet101/tutorials.aspx?id=1
回复

使用道具 举报

 楼主| 发表于 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呢???
回复

使用道具 举报

Follow Us
 楼主| 发表于 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... :)
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 6-8-2025 10:54 AM , Processed in 0.119854 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表