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处有错误。设置断点。参数数据正确。怎么回事。怎么解决 展开
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处有错误。设置断点。参数数据正确。怎么回事。怎么解决 展开
2个回答
展开全部
楼上说得完全正确,这是因为你的表明是数据库的关键字在查询的时候就会报错
一般我们在建表的时候会避免使用关键字。例如,name,order,case等。如果实在要用这样的名字在写sql语句时一定要加上两个中括号,[表名],[列名]。有些时候列名也一样。
一般我们在建表的时候会避免使用关键字。例如,name,order,case等。如果实在要用这样的名字在写sql语句时一定要加上两个中括号,[表名],[列名]。有些时候列名也一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误提示很明显,不是程序错误,是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 的关键字
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 的关键字
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询