添加Access的问题,在线等,急

Joe-Fan 2011-12-07 03:10:21
总是说我Insert语句错误,高手看看,到底问题在那,蛋疼了!
string sql = "insert into InsertInfo(name,model,unit,count,price,sumprice,stockunits,remark,type,time)values(?,?,?,?,?,?,?,?,?,?);";
OleDbParameter[] parameters = new OleDbParameter[10];
parameters[0] = new OleDbParameter("@name", OleDbType.VarChar);
parameters[0].Value = p.Name;
parameters[1] = new OleDbParameter("@model", OleDbType.VarChar);
parameters[1].Value = p.Model;
parameters[2] = new OleDbParameter("@unit", OleDbType.VarChar);
parameters[2].Value = p.Unit;
parameters[3] = new OleDbParameter("@count", OleDbType.VarChar);
parameters[3].Value = p.Count;
parameters[4] = new OleDbParameter("@price", OleDbType.VarChar);
parameters[4].Value = p.Price;
parameters[5] = new OleDbParameter("@sumprice", OleDbType.VarChar);
parameters[5].Value = p.Sumprice;
parameters[6] = new OleDbParameter("@stockunits", OleDbType.VarChar);
parameters[6].Value = p.Stockunits;
parameters[7] = new OleDbParameter("@remark", OleDbType.VarChar);
parameters[7].Value = p.Remark;
parameters[8] = new OleDbParameter("@type", OleDbType.VarChar);
parameters[8].Value = p.Type;
parameters[9] = new OleDbParameter("@time", OleDbType.Date);
parameters[9].Value = p.Time;
return AccessDBUtil.ExecuteInsert(sql, parameters);

public static int ExecuteInsert(string sql,OleDbParameter[] parameters)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbCommand cmd = new OleDbCommand(sql, connection);
try
{
connection.Open();
if(parameters!=null) cmd.Parameters.AddRange(parameters);
cmd.ExecuteNonQuery();//执行到这里出错!
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
}
catch (Exception e)
{
throw e;
}
}
}
在Access中,还有一个字段ID,设为自动编号!求高手秒杀我的问题啊。。!
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joe-Fan 2011-12-07
  • 打赏
  • 举报
回复
兄台,万分感谢
[Quote=引用 6 楼 dalmeeme 的回复:]

对,主要是time改一下,其他可以不改。
[/Quote]
dalmeeme 2011-12-07
  • 打赏
  • 举报
回复
对,主要是time改一下,其他可以不改。
dalmeeme 2011-12-07
  • 打赏
  • 举报
回复
尤其是time字段名要写成[time],我刚才试了一下
dalmeeme 2011-12-07
  • 打赏
  • 举报
回复
sql语句中count可能是关键字,要写成[count],若不行,其他字段名也加上。
Joe-Fan 2011-12-07
  • 打赏
  • 举报
回复
同样说我语法错误,o(︶︿︶)o 唉[Quote=引用 2 楼 dalmeeme 的回复:]

sql语句最后的分号也去掉。
[/Quote]
dalmeeme 2011-12-07
  • 打赏
  • 举报
回复
sql语句最后的分号也去掉。
dalmeeme 2011-12-07
  • 打赏
  • 举报
回复
都用这种形式试试:parameters[0] = new OleDbParameter("?", OleDbType.VarChar);

110,536

社区成员

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

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

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