datatable插入到数据库中,出现的问题!急。

代码:DataTabledd=(DataTable)Session["cart"];for(intr2=0;r2<dd.Rows.Count;r2++){stringfn... 代码:DataTable dd = (DataTable)Session["cart"];
for (int r2 = 0; r2 < dd.Rows.Count; r2++)
{
string fname = dd.Rows[r2][1].ToString();
decimal price = Convert.ToDecimal(dd.Rows[r2][2].ToString());
int num = Convert.ToInt32(dd.Rows[r2][3].ToString());
string ordertime = dd.Rows[r2][5].ToString();
string username = dd.Rows[r2][6].ToString();
string name = dd.Rows[r2][7].ToString();
string address = dd.Rows[r2][8].ToString();
string conn=System.Configuration.ConfigurationManager.AppSettings["data"];
SqlConnection conn1 = new SqlConnection(conn);
conn1.Open();
string cmdstr = "insert into order(address,name,username,fname,price,num,ordertime) values(@address,@name,@username,@fname,@price,@num,@ordertime)";
SqlCommand cmd = new SqlCommand(cmdstr,conn1);
SqlParameter[] pars = new SqlParameter[]
{
new SqlParameter("@address",address),
new SqlParameter("@name",name),
new SqlParameter("@username",username),
new SqlParameter("@fname",fname),
new SqlParameter("@price",price),
new SqlParameter("@num",num),
new SqlParameter("@ordertime",ordertime)

//最后一个不要逗号
};
cmd.Parameters.AddRange(pars);
cmd.ExecuteNonQuery();
conn1.Close();
}
Session["cart"]结构:DataTable d = new DataTable();
d.Columns.Add("fid");
d.Columns.Add("fname");
d.Columns.Add("price");
d.Columns.Add("num");
d.Columns.Add("image");
d.Columns.Add("buytime");
d.Columns.Add("username");
d.Columns.Add("name");
d.Columns.Add("address");
SQL数据库food,表order:
oid(自动增长) username name username fname price(decimal) num(int) ordertime status(默认为0),其余为string.
运行结果:关键字order处有错误。设置断点。参数数据正确。怎么回事。怎么解决
展开
 我来答
斯蒂芬周ZG
2011-03-21 · TA获得超过135个赞
知道答主
回答量:109
采纳率:0%
帮助的人:89.5万
展开全部
楼上说得完全正确,这是因为你的表明是数据库的关键字在查询的时候就会报错

一般我们在建表的时候会避免使用关键字。例如,name,order,case等。如果实在要用这样的名字在写sql语句时一定要加上两个中括号,[表名],[列名]。有些时候列名也一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华佗之父
2011-03-20 · TA获得超过1241个赞
知道小有建树答主
回答量:1623
采纳率:0%
帮助的人:1119万
展开全部
错误提示很明显,不是程序错误,是SQL语句错误
string cmdstr = "insert into [order](address,name,username,fname,price,num,ordertime) values(@address,@name,@username,@fname,@price,@num,@ordertime)";

把表名order用[]括起来就OK,,因为 order 是 排序 order by 的关键字
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式