急等,INSERT INTO 语句的语法错误

s000011 2016-11-01 10:50:07
Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=" + Application.StartupPath + "\\网吧数据库.accdb"
Dim conn As OleDbConnection = New OleDbConnection(str)
conn.Open()
Dim sql As String = "insert into tbUser(UserName,Password,,,Fee,,,,,,)values('" + textBox1.Text.Trim() + "','" + textBox2.Text.Trim() + "',,,'" + textBox4.Text.Trim() + "',,,,,,)"
Dim cmd As OleDbCommand = New OleDbCommand(sql, conn)
Dim i As Integer = cmd.ExecuteNonQuery()
If i > 0 Then
Dim l As String = "欢迎光临蓝天高级网吧!" + "\n" + "---------------------" + "\n" + "卡号:" + textBox1.Text + "\n" + "密码:" + textBox2.Text + "\n" + "押金:" + textBox4.Text + "\n" + "开通时间:" + textBox5.Text + "\n" + "开通时长:" + s + "\n" + "\n" + "在本网吧包时、早市、夜市、会员" + "\n" + "一律不能退钱"
MsgBox("l")
conn.Close()
End If

代码就是这样,已运行就提示语法错误,求解决
...全文
625 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝天上的白云 2016-11-03
  • 打赏
  • 举报
回复
7楼已经帮你写了示例了,学下Sql和基本的.net语法吧
  • 打赏
  • 举报
回复
还是学下SQL吧,这么多逗号能语法正确就怪了
EnForGrass 2016-11-01
  • 打赏
  • 举报
回复
字段很多的话,凭借字符串看起来好累。你起码也应该用string.Format处理一下 其次调试时候把sql语句拿到查询分析器里面执行下,看看有问题么
KyKiske22 2016-11-01
  • 打赏
  • 举报
回复
Dim sql As String = "insert into tbUser(UserName,Password,Fee)values(@UserName,@Password,@Fee)";这句少了个分号,忘了补充。如果涉及到多个关系表添加往往先声明个@id然后在句子后面价格@id=@@identity。多练练把楼主,W3C也多看看
KyKiske22 2016-11-01
  • 打赏
  • 举报
回复
楼主,先不说逗号这种语法错误的问题,首先你这种把变量直接拼接在string的思路就不好,推荐你看看杨中科的传智博客的视频,能学到很多的。我这是C# winform中写的,你的应该也大同小异 你的执行方法: Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=" + Application.StartupPath + "\\网吧数据库.accdb" Dim conn As OleDbConnection = New OleDbConnection(str) conn.Open() Dim sql As String = "insert into tbUser(UserName,Password,Fee)values(@UserName,@Password,@Fee)" SqlParameter[] sp=new SqlParameter[3]; sp[0]=new SqlParameter("@UserName",textBox1.Text.Trim()); sp[1]=new SqlParameter("@Password",textBox2.Text.Trim()); sp[2]=new SqlParameter("@Fee",textBox4.Text.Trim()); Dim cmd As OleDbCommand = New OleDbCommand(sql, conn) cmd.Connection=conn; cmd.CommandType = CommandType.Text; cmd.CommandText = sql ; foreach (SqlParameter p in sp) { cmd.Parameters.Add(p); } Dim i As Integer = cmd.ExecuteNonQuery()
D56233577 2016-11-01
  • 打赏
  • 举报
回复
你的SQL这么多逗号?insert into tbUser(UserName,Password,,,Fee,,,,,,)
楚狂歌 2016-11-01
  • 打赏
  • 举报
回复
还有,windows系统 x64+office x64 +ACE.4.0环境下,一般会报错 所以简单省事,把数据库另存为mdb格式 VB不需要两个\,C#才需要【\\】
Poopaye 2016-11-01
  • 打赏
  • 举报
回复
会不会看最终的sql?
楚狂歌 2016-11-01
  • 打赏
  • 举报
回复
网吧数据库.accdb是ACCESS2007的数据库格式,数据库引擎要用ACE.4.0,否则就要把你数据库另存为mdb格式(.oledb.12.0)

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧