在c#中插入Access数据库记录时老提示“INSERT INTO 语句的语法错误”,为什么?

时间:2021-04-07 21:44:47
1:cm=(OleDbCommand)Cache["cm"];           
2:cm.CommandText ="insert into main (name,sex) values ('ilon','男')";
3:cm.ExecuteNonQuery();

执行到第3句时老提示“INSERT INTO 语句的语法错误”,数据库是Access。

这是为什么?请各位大哥帮忙解决,谢了!


14 个解决方案

#1


looks fine to me

1. make sure you have given ASPNET write permissions on the database file and the folder it is in

2. what version of access are you using? try (although unnecessary in access2000):

"insert into [main] ([name],sex) values ('ilon','男')"

#2


name

=》

[name]

#3


肯定的是你的语句错了,错在哪里呀查一下:

字段sex是字符串类型吗?

可以将语句放在ACCSEE的查询器里运行调试好后考过来用。

#4


main 或sex有一个改为[main] 或[sex]

#5


用一下一些sql语句的分析工具嘛:)比如sql server里面的分析工具
有些数据库系统有它自身的关键字,比如sql server中有user关键字,那你如果表名和它一样的话就要变成[user]来用了:)
同理以上。。。

#6


string var1="ilon";
string var2="男";
cm.CommandText ="insert into main (name,[sex]) values ('"+var1+"','"+var2+"')";
这样绝对没问题。

#7


学习,,看不懂

#8


"insert into [main] ([name],sex) values ('ilon','男')"

因为main,name都是ACCESS的关键字,所以要加中括号(“[]”)

#9


main是表名,name和sex是字段名,是字符类型
为什么只在name要加中括号(“[]”),而sex就不用呢?

#10


to  zhaozhongju(什么都想用,什么都没用好):main,name不是关键字是表名和字段名

#11


to  zhaozhongju(什么都想用,什么都没用好):main,name不是关键字是表名和字段名

////////////////

对你来说是这样,对Access来说main,name就是它保留的关键字,所以必须加[]

比如你写程序的时候就不能定义一个名为:use、string的变量

#12


把main name换个名称试试

#13


同意楼上的意见。name应该加[]才行。

#14


hy_radium(蜀铮) 说的对,name应该加[]就可以了,谢谢各位!

#1


looks fine to me

1. make sure you have given ASPNET write permissions on the database file and the folder it is in

2. what version of access are you using? try (although unnecessary in access2000):

"insert into [main] ([name],sex) values ('ilon','男')"

#2


name

=》

[name]

#3


肯定的是你的语句错了,错在哪里呀查一下:

字段sex是字符串类型吗?

可以将语句放在ACCSEE的查询器里运行调试好后考过来用。

#4


main 或sex有一个改为[main] 或[sex]

#5


用一下一些sql语句的分析工具嘛:)比如sql server里面的分析工具
有些数据库系统有它自身的关键字,比如sql server中有user关键字,那你如果表名和它一样的话就要变成[user]来用了:)
同理以上。。。

#6


string var1="ilon";
string var2="男";
cm.CommandText ="insert into main (name,[sex]) values ('"+var1+"','"+var2+"')";
这样绝对没问题。

#7


学习,,看不懂

#8


"insert into [main] ([name],sex) values ('ilon','男')"

因为main,name都是ACCESS的关键字,所以要加中括号(“[]”)

#9


main是表名,name和sex是字段名,是字符类型
为什么只在name要加中括号(“[]”),而sex就不用呢?

#10


to  zhaozhongju(什么都想用,什么都没用好):main,name不是关键字是表名和字段名

#11


to  zhaozhongju(什么都想用,什么都没用好):main,name不是关键字是表名和字段名

////////////////

对你来说是这样,对Access来说main,name就是它保留的关键字,所以必须加[]

比如你写程序的时候就不能定义一个名为:use、string的变量

#12


把main name换个名称试试

#13


同意楼上的意见。name应该加[]才行。

#14


hy_radium(蜀铮) 说的对,name应该加[]就可以了,谢谢各位!