access插入数据的问题
第一次使用access作为数据库,卡在插入的问题上了
我在access上建了一个表 有四个字段分别为
id 自动编号 key
url 文本
mark 是/否
email 文本
time 日期/时间
插入的代码
C# code
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上?
各位能看出我出的问题在哪里吗?请不吝指教
------解决方案--------------------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#')
看看还错不会,你格式成我这样的你看看还错不??
------解决方案--------------------是不是有关键字,改成下面这样试试
cmd.CommandText = string.Format("insert into emailList([url],[email],[mark],[time]) values('{0}','{1}',{2},#{3}#)",x1,x2,bo,dt.ToString("yyyy/MM/dd"));
------解决方案--------------------不要使用Format。
最好的写法是
sql = "insert into emailList(url,email,mark,time) values(@url,@email,@mark,@time)"
采用参数化的方法