access插入数据的问题

blackjunes 2012-05-16 01:09:40
第一次使用access作为数据库,卡在插入的问题上了
我在access上建了一个表 有四个字段分别为
id 自动编号 key
url 文本
mark 是/否
email 文本
time 日期/时间
插入的代码

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=Data.mdb");
bool bo = true;
DateTime dt = DateTime.Now;
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
string x1 = "ddd";
string x2 = "aaaa";
cmd.CommandText = string.Format("insert into emailList(url,email,mark,time) values('{0}','{1}',{2},#{3}#)",x1,x2,bo,dt.ToString("yyyy/MM/dd"));
cmd.ExecuteNonQuery();//这个地方报错:INSERT INTO 语句的语法错误。各位看官能告诉我出错在哪里吗?

我把id去掉 不设关键字直接用 cmd.CommandText = string.Format("insert into emailList values('{0}','{1}',{2},#{3}#)",x1,x2,bo,dt.ToString("yyyy/MM/dd"))插入成功!难倒是出在id上?
各位能看出我出的问题在哪里吗?请不吝指教
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackjunes 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
insert into emailList(url,email,mark,time) values('0}','{1}',{2},#{3}#)

insert into emailList(url,email,mark,time) values('a','b','c','#2010-2-2#')
看看还错不会,你格式成我这样的你看看还错不??
[/Quote]
不行 二楼的可以 还是很感谢啦
孟子E章 2012-05-16
  • 打赏
  • 举报
回复
不要使用Format。
最好的写法是
sql = "insert into emailList(url,email,mark,time) values(@url,@email,@mark,@time)"
采用参数化的方法
EnForGrass 2012-05-16
  • 打赏
  • 举报
回复
是不是有关键字,改成下面这样试试
cmd.CommandText = string.Format("insert into emailList([url],[email],[mark],[time]) values('{0}','{1}',{2},#{3}#)",x1,x2,bo,dt.ToString("yyyy/MM/dd"));
mingcsharp 2012-05-16
  • 打赏
  • 举报
回复
insert into emailList(url,email,mark,time) values('0}','{1}',{2},#{3}#)

insert into emailList(url,email,mark,time) values('a','b','c','#2010-2-2#')
看看还错不会,你格式成我这样的你看看还错不??

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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