为什么我在ASP.NET(VB)中用insert向Access插入数据,老是提示“INSERT INTO 语句的语法错误”

到底是怎么回事
那位大侠能提供一些例子当然更好。
万分感谢....
我用的是Access2003,代码大致如下:
dim conn as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("chatroom.mdb"))
dim sql as string
sql = "Insert into Test(Name,Password) values ('J2046','510125')"
dim cmd as New OleDbCommand(sql,conn)
conn.open()
cmd.ExecuteNonQuery()
conn.close()
message.Text = "Succeed in inseting Data in DataBase "

但总是有错误:
异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。

源错误:

行 14: dim cmd as New OleDbCommand(sql,conn)
行 15: conn.open()
行 16: cmd.ExecuteNonQuery() //错误指示就在这里
行 17: conn.close()
行 18: message.Text = "Succeed in inseting Data in DataBase "

第1个回答  2008-04-14
如果你能给出你出错的语句
然后说明你Access的数据库格式
比如说你的Access是Access2000格式的
一定给你满意答案
我实在懒得整理语句给你了
因为我自己都做好类了的
直接执行就行了
又要整理关键语句出来给你很麻烦

补充:我照着你写的并没有错,但是我看你的那个连接字符串好像有点问题,就是dim conn as new OleDbConnection那行
最后你定义Server.Mappath("chatroom.mdb")那里我不知道那句什么意思,但是最后你记得加符号;了吗,是否应该改为Server.Mappath("chatroom.mdb");
但是这应该也不是问题,因为如果是这个问题你在conn.open()时就应该出错了
我实在不知道你错在哪里,干脆我直接给我试的代码你参考吧
LeafOleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & LeafFileName & ";" & "Jet OLEDB:Database Password='" & LeafPassWord & "';")
LeafOleDbCommand = New OleDbCommand
LeafOleDbCommand.CommandText = "Insert into Projects(ProjectID,ProjectName,lastupdatedate) values ('8cd43036-7631-403d-a37c-248893403556','510125','2005/1/1 6:20:00')"
LeafOleDbCommand.CommandType = CommandType.Text
LeafOleDbCommand.Connection = LeafOleDbConnection

LeafOleDbConnection.Open()
MsgBox(LeafOleDbCommand.ExecuteNonQuery.ToString)
LeafOleDbConnection.Close()
再看了老半天你确实是没有写错的,哎,你试改改那个连接语句看吧,对了你用的VB什么版本,我是VB2008的,还有啊,你最开始声明使用数据库类的时候是不是这句Imports System.Data.OleDb
你自己看看吧感觉你真没有写错,而且我故意写错了错误提示和你也不一样,可能实在帮不了你了,你自己看看

vs2005,用vb.net连接Access数据库,输入日期存入数据库,总是提示insert...
肯定是那个细节有问题,没有源码没法看。 不过你可以把日期类型转换为string 把库字段类型改成文本 。

向Access插入数据后显示INSERT INTO语法错误!!!
一般这样的错误我是这样排查的,把Sql 的内容放到Access的查询中执行试试看行不行,第1次只插入第一个字段的值,第二次插入第1和2个字段的值,每次多加一个字段上去,总能找到错误的地方的。

asp.net access 总显示insert into语法错误 经过查询器运行这句没有出 ...
(ImageTime,ImageSize,ImageData,ImageContentType,ImageDiscription,ImageTitle,ImageType)VALUES(@time,@size,@data,@ContentType,@discription,@title,@type)";写多一行了。

vb.net向Access数据库表中插入数据总是提示 INSERT INTO 语法错误
定义一个OleDbCommand,把OleDbCommandBuilder的insertCommand给他,在语句后面加个断点就能看到

ASP.NET insert into 语句的语法错误
into 语句的语法错误“。用oledbadapter的时候,我并没有指定insert语句,而是用oledbcommandbuilder 来自动产生insert 语句的。仔细想了一下,为什么会产生这个错误呢?我的结论是,可能这张表里的字段名使用了access系统的保留字。于是我在access里创建了一个查询,自己写了一个insert sql,证实我的...

我向Access插入数据后显示INSERT INTO语法错误!!!
values('"& name 改成 values ('"& name 少一个空格

ASP插入access数据时出现错误
那么下面的语句就肯定错:)因为 enctype="multipart\/form-data"和enctype="text\/plain"不能同时使用的.pname=upload.form("pname") 和 info=upload.form("info")3.有可能是你的insert语句中的某一个字段和你数据库的字段类型不匹配,你注意查查.以上回答不一定对,但愿解决你问题....

使用access SQL 语句 插入记录时insert into 。。。执行时询问您正准备...
其实就是系统和你确认要不要插入这条记录。如果你按“是”按钮,系统就会将你的这条记录正式添加到系统中

asp.net INSERT INTO 语句的语法错误。
INSERT 后加into

asp+access关于INSERT INTO 问题求解答
这个问题据说是Access的一个BUG,在SQL Server没有发现这个问题。原因绝大多数的情况是由于文章、标题、名字等内容的标题、名称或者关键字等字段内含有一些日本片假名造成的。这些非法字符包括:(不能写出来,否则搜索该出错了)。反正看到小日本那26个日文字符就不要写就好了,保证没这个问题。本来我是想...

相似回答