VB.NET插入数据字符串问题

qjgdftxmu 2008-04-10 07:59:50
Dim SQLString As String = "INSERT INTO Record ('UserID','Date') VALUES('" & UserID & " ','" & RecordDate & "')"

这是我的SQL查询语言,可是系统却提示“UserID是末知字段”可是我的查询表中明明有UserID字段的。是不是我的SQL语句有问题啊。

PS:我是VB新手,手上的资料又没有类似例子,而这种情况我也不知道怎么从网上找,所以发帖仓促,希望更位高手能帮忙!
...全文
179 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qjgdftxmu 2008-04-11
  • 打赏
  • 举报
回复
已经搞定了,都搞定了。
Ny-6000 2008-04-11
  • 打赏
  • 举报
回复
该去就要去,可不能乱添哟。

呵呵 ,相信现在已经解决了问题吧?
vlsm 2008-04-11
  • 打赏
  • 举报
回复
如果date字段为日期类型用以下语句:

关键点:
1:date为access关键字,要用[date],一般不建议用date这个字段名
2:#2008-4-10 19:26:06#

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim path As String = Application.StartupPath.ToString & "temp.mdb"
Dim myconnection As New OleDb.OleDbConnection("provider=microsoft.jet.OLEDB.4.0;" & "data source=temp.mdb") '
Dim strName As String = Me.ListBox1.Text.ToString
Dim strsql As String
strsql = "insert into info(姓名,[date]) VALUES('" + strName + "',#2008-4-10 19:26:06#)"
MsgBox(strsql)
Dim mycommand As New OleDb.OleDbCommand(strsql, myconnection)
myconnection.Open()
mycommand.ExecuteReader() 'mycommand.ExecuteNonQuery()
myconnection.Close()


End Sub
vlsm 2008-04-10
  • 打赏
  • 举报
回复
借用http://topic.csdn.net/u/20080410/23/459c491d-9273-4c48-ba51-c092afa555d9.html的例子

我改为insert into ,,注意看下面SQL的写法:

以下代码经过VB2005 express 测试,表结构很简单:就一个字段--姓名,自己可以测试以下

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim path As String = Application.StartupPath.ToString & "temp.mdb"
Dim myconnection As New OleDb.OleDbConnection("provider=microsoft.jet.OLEDB.4.0;" & "data source=temp.mdb") '
Dim strName As String = Me.ListBox1.Text.ToString
Dim strsql As String
strsql = "insert into info(姓名) VALUES('" + strName + "')"
Dim mycommand As New OleDb.OleDbCommand(strsql, myconnection)
myconnection.Open()
mycommand.ExecuteReader() 'mycommand.ExecuteNonQuery()
myconnection.Close()


End Sub
qjgdftxmu 2008-04-10
  • 打赏
  • 举报
回复
用TextBox看了一下
INSERT INTO Record ('UserID','Date') VALUES(AAA,2008-4-10 23:14:36)
中间也没什么变化

Record 表很简单,三项:Number(自动编号,主键),UserID(文本,必填字段),Date(日期,必填字段)
其实我不想给自动编号的Number加数据,所以才出现这些让我无语的问题。如果给Number也加数据的话,那表名和VALUES中间的属性名就可以不要,也不会出现这些问题。
哪个高手告诉我一下,如果不要表名和VALUES中间那些属性名。即:
Dim SQLString As String = "INSERT INTO Record VALUES('1','" & UserID & "','" & RecordDate & "')"
想给某一列(就是Number列)空值的应该怎么做? 这样就可以避开这个问题了,虽然会少学些东西··········
qjgdftxmu 2008-04-10
  • 打赏
  • 举报
回复
还是不行啊,我用的是VS.NET 2005,ACCESS 2003.
我看网上的插入列名都不用加''的。可是我的电脑不加''提示我的“INSERT INTO 语句的语法错误”,而加了之后没说错误,确说找不UserID字段。
Dim SQLString As String = "INSERT INTO Record ('UserID','Date') VALUES(" & UserID & " ,'" & RecordDate & "')"
把"&UserID&"上的''去掉,不提示找不到UserID字段了,说我至少有一个字段没有值。
我就直接把" & RecordDate & "两个边的''也去掉,就提示“语法错误(操作符丢失)在查询表达‘2008-4-10 19:26:06’”

我是直接要倒了,都不知道这几个''是干什么用的。
liuyann 2008-04-10
  • 打赏
  • 举报
回复

Record 的表结构是什么?

另外debug看一下你的 SQLString 执行前的内容是什么?
==== ====
水如烟 2008-04-10
  • 打赏
  • 举报
回复

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim UserID As Integer = 100
Dim RecordDate As Date = #4/9/2008#

Dim SQLString As String = String.Format("INSERT INTO Record (UserID,Date) VALUES({0},#{1}#)", UserID, RecordDate)

Console.WriteLine(SQLString)
End Sub
qjgdftxmu 2008-04-10
  • 打赏
  • 举报
回复
不是啊,
去掉‘的话,是错的啊。我有试过,提示“INSERT INTO 语法错误”。
足球中国 2008-04-10
  • 打赏
  • 举报
回复
把'去掉
vlsm 2008-04-10
  • 打赏
  • 举报
回复
Dim SQLString As String = "INSERT INTO Record (UserID,Date) VALUES('" & UserID & " ','" & RecordDate & "')"
vlsm 2008-04-10
  • 打赏
  • 举报
回复
SQL有误:

INSERT INTO 表 (id, Date)
VALUES ('Los Angeles','Jan-10-1999')

16,717

社区成员

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

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