当前位置:编程学习 > C#/ASP.NET >>

求助高手。有人能解答下吗。本人新手。

<%@ Page Language="vb" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
    Sub Enter_Click(ByVal Sender As Object, ByVal E As EventArgs)
        Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TDDownload\db1.mdb")
        Dim strSql As String
        strSql = "Insert Into link(sitename,URL,intro,grade,submit_date) Values('" & user_name.Text & "','" & password1.Text & "','" & age.Text & "'," & email.Text & "'," & shenfen.Text & "'," & dianhua.Text & ",#" & Now() & "#)"
        Dim cmd As New OleDbCommand(strSql, conn)
        conn.Open()
        cmd.ExecuteNonQuery()
        conn.Close()
        message.Text = "注册成功。"
    End Sub
</script>
这个是我的代码。我在网页中运行后点击确定注册后。
语法错误 (操作符丢失) 在查询表达式 'aslkdja@qq.com',410303199012180516'' 中。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.OleDb.OleDbException: 语法错误 (操作符丢失) 在查询表达式 'aslkdja@qq.com',410303199012180516'' 中。

源错误: 


行 22:         Dim cmd As New OleDbCommand(strSql, conn)
行 23:         conn.Open()
行 24:         cmd.ExecuteNonQuery()
行 25:         conn.Close()
行 26:         message.Text = "注册成功。"
 
--------------------编程问答-------------------- 求助。谁能帮忙说下 怎么修改? --------------------编程问答-------------------- strSql = "Insert Into link(sitename,URL,intro,grade,submit_date) Values('" & user_name.Text & "','" & password1.Text & "','" & age.Text & "'," & email.Text & "'," & shenfen.Text & "'," & dianhua.Text & ",#" & Now() & "#)"


里面有几个。& email.Text & , & shenfen.Text &, & dianhua.Text & 两边的单引号丢了。这个是必须的。
写代码仔细点! --------------------编程问答-------------------- strSql = "Insert Into link(sitename,URL,intro,grade,submit_date) Values('" & user_name.Text & "','" & password1.Text & "','" & age.Text & "'," & email.Text & "'," & shenfen.Text & "'," & dianhua.Text & ",#" & Now() & "#)"


你的单引号....
--------------------编程问答-------------------- 单引号。。。 --------------------编程问答-------------------- strSql = "Insert Into link(sitename,URL,intro,grade,submit_date) Values('" & user_name.Text & "','" & password1.Text & "','" & age.Text & "','" & email.Text & "','" & shenfen.Text & "','" & dianhua.Text & "','" & Now() & "')"
这样应该就可以了
下次出现这样的问题,你先将strsql输出来,在access中先执行以下就能发现问题所在了 --------------------编程问答-------------------- 就是引号的问题   --------------------编程问答-------------------- 我能改的改完了
strSql = "Insert Into db1 (user_name,password,age,email,shenfen,dianhua,submit_date) Values('" & user_name.Text & "','" & password1.Text & "','" & age.Text & "','" & email.Text & "','" & shenfen.Text & "','" & dianhua.Text & ",#" & Now() & "#)"
,。。。。
又运行了下 。说我Insert Into 语句错误。 --------------------编程问答-------------------- strSql = "Insert Into db1 (user_name,password,age,email,shenfen,dianhua,submit_date) Values('" & user_name.Text & "','" & password1.Text & "','" & age.Text & "','" & email.Text & "','" & shenfen.Text & "','" & dianhua.Text & ",#" & Now() & "#)"
最后一个怎么变成"#"不解? --------------------编程问答-------------------- 最后的是日期型啊 --------------------编程问答-------------------- strSql = "Insert Into db1 (user_name,password,age,email,shenfen,dianhua,submit_date) Values('" & user_name.Text & "','" & password1.Text & "','" & age.Text & "','" & email.Text & "','" & shenfen.Text & "','" & dianhua.Text & ",#" & Now() & "#)"
在这加一个断点,然后获取到这个sql语句,拷贝下来复制到sql2005上,看看是不是有语法错误 --------------------编程问答-------------------- 你这种问题最好将sql语句输出来,拿到数据库中先执行以下就知道哪里有问题了

即使大家帮你把这个问题解决了,你以后还是不明白,
最主要的是知道碰到类似问题的解决方法

像SQl2000中有查询分析器
Access中可以建立一个视图,将你的sql拷贝进去,执行以下就OK了
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,