导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

我要疯了,大伙帮我看看问题到底出在哪里?

sbxkpl 2004-04-23 05:51:00
一个vb.net的插入语句,每次都是出现:INSERT INTO 语句的语法错误。我实在找不出问题出在什么地方,请各位ggjjddmm们帮帮我吧!我真的被它搞得头大了,要疯了!!
'定义函数
Sub ExecuteSQL(Sql As String)
Dim myCmd As OleDbCommand
myCmd = New OleDbCommand(Sql,myConn)
myConn.Open()
myCmd.ExecuteNonQuery()
myConn.Close()
End sub
'
Sub Page_Load(sender As Object, e As EventArgs)
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("/qkglxt/data/data.mdb")
myConn = New OledbConnection(strConn)

if not page.ispostback then
Sql = "SELECT HTLBID, HTLB FROM tblgjlb ORDER BY HTLBID"
dlHTLB.DataTextField="HTLB"
dlHTLB.DataValueField="HTLBID"
dlHTLB.DataSource = GetDataView(Sql,"HTLB")
dlHTLB.DataBind()

Sql = "SELECT z_id, zhichen FROM tblzhichen ORDER BY zhichen"
EZHIWU.DataTextField="z_id"
EZHIWU.DataValueField="zhichen"
EZHIWU.DataSource = GetDataView(Sql,"z_id")
EZHIWU.DataBind()
end if
End Sub
'确定
sub check_user(sender as object,e as eventargs)
Dim okSql as String
oksql = "INSERT INTO expert(e_name,e_pass,e_realm,e_zhiwu,e_tal,e_email,e_unit,e-add,contents,e_remarks) VALUES( "
oksql = oksql & ENAME.text & "','"
oksql = oksql & EPASS.text & "','"
oksql = oksql & dlHTLB.SelectedItem.Value & "','"
oksql= oksql & EZHIWU.SelectedItem.Value & "','"
oksql = oksql & ETALL.text & "','"
oksql = oksql & EEMAIL.text & "','"
oksql = oksql & EUNIT.text & "','"
oksql = oksql & EADD.text & "','"
oksql = oksql & CONTENTS.text & "','"
okSql = okSql & " ')"

ExecuteSQL(okSql)
me.Response.Redirect("main.aspx")

end sub

...全文
9 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
相信的勇气 2004-04-23
监视一下oksql的内容,把它拷贝到access中执行,看看报不报错!

我觉得是开始的时候少了一个'
VALUES( "
好像差个单引句

VALUES( '"
回复
Silenthunter 2004-04-23
把你的oksql 的内容用Response显示到客户端 比较好查错
回复
aero_boy 2004-04-23
VALUES( "
好像差个单引句

VALUES( '"
回复
黄金安魂曲 2004-04-23
oksql = "INSERT INTO expert (e_name,e_pass,e_realm,e_zhiwu,e_tal,e_email,e_unit,e-add,contents,e_remarks) VALUES('" & ENAME.text & "','" & EPASS.text & "','" & dlHTLB.SelectedItem.Value.ToString() & "','" & EZHIWU.SelectedItem.Value.ToString() & "','"& ETALL.text & "','" & EEMAIL.text & "','" & EUNIT.text & "','" & EADD.text & "','" & CONTENTS.text & "',' ')"
你把这个字符串拷去看看!!
我知道你错在哪了,在VALUES( "前添一个单引号,即VALUES('"
回复
黄金安魂曲 2004-04-23
孟老大的意思是把oksql的值写在页面上,这样不叫好检查
回复
黄金安魂曲 2004-04-23
设置断点,选择调试(F11单步),程序运行到ExecuteSQL(okSql)时,双击okSql选中,按Ctrl+Alt+Q取出其值,在SQL的查询分析器中运行一下,它会告诉你错在哪。
回复
sbxkpl 2004-04-23
唉,不行不行,还是不行,郁闷!我用同样的格式在另一个页面添加数据,却可以,只不过是数据表和数据字段不同而已!孟老大,你所说的Response.Write(oksql)怎么用,我加入了,怎么一点反应也没有,不过我也不知道这是什么意思,呵呵。。。
回复
smx717616 2004-04-23
同意大家的说法
回复
黄金安魂曲 2004-04-23
还有,VALUES("的这个"去掉
回复
黄金安魂曲 2004-04-23
你数据库里字段是字符串吧?那要加单引号的,你加在后面有什么用?
oksql = "INSERT INTO expert(e_name,e_pass,e_realm,e_zhiwu,e_tal,e_email,e_unit,e-add,contents,e_remarks) VALUES( "
oksql = oksql & "'" & ENAME.text & "',"
oksql = oksql & "'" & EPASS.text & "',"
... ...
不是字符串的可别加引号了
回复
bitsbird 2004-04-23
细心点,就是单引号和双引号要注意,都是对称的
回复
ljmay168 2004-04-23
最開始這個oksql少了一個單引號
oksql = "INSERT INTO expert(e_name,e_pass,e_realm,e_zhiwu,e_tal,e_email,e_unit,e-add,contents,e_remarks) VALUES( '"
回复
孟子E章 2004-04-23
vb.net可以用+了
oksql = oksql + EADD.text & "','"

....
回复
孟子E章 2004-04-23
Response.Write(oksql)看是什么
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告