public void saveStocks(Stocks[] stocks)
{ sql = " INSERT INTO Stocks VALUES " +
"('@ListNumber' , '@CustomerName' , '@Company' , '@ProductName' , " +
"'@ProductType' , '@ProductUnit' , '@Count' , '@Price' , '@Money' , " +
"'@ImportOrExport' , '@StockInDate' , '@StockOutDate' , '@Demo' , " +
"'@UserId' , '@EnterDate') ";
try
{ for (int i = 0; i < stocks.Length; i++)
{
cmd = new SqlCommand(sql, con);
cmd.Parameters.AddWithValue("@ListNumber", stocks[i].ListNumber);
cmd.Parameters.AddWithValue("@CustomerName", stocks[i].CustomerName);
cmd.Parameters.AddWithValue("@Company", stocks[i].Company);
cmd.Parameters.AddWithValue("@ProductName", stocks[i].ProductName);
cmd.Parameters.AddWithValue("@ProductType", stocks[i].ProductType);
cmd.Parameters.AddWithValue("@ProductUnit", stocks[i].ProductUnit);
cmd.Parameters.AddWithValue("@Count", stocks[i].Count);
cmd.Parameters.AddWithValue("@Price", stocks[i].Price);
cmd.Parameters.AddWithValue("@Money", stocks[i].Money);
cmd.Parameters.AddWithValue("@ImportOrExport", stocks[i].ImportOrExport);
cmd.Parameters.AddWithValue("@StockInDate", stocks[i].StockInDate);
cmd.Parameters.AddWithValue("@StockOutDate", stocks[i].StockOutDate);
cmd.Parameters.AddWithValue("@Demo", stocks[i].Demo);
cmd.Parameters.AddWithValue("@UserId", stocks[i].UserId);
cmd.Parameters.AddWithValue("@EnterDate", System.DateTime.Now); con.Open();
trans = con.BeginTransaction();
cmd.Transaction = trans;
cmd.ExecuteNonQuery();
trans.Commit();
cmd.Dispose();
con.Close();
}
}
catch (Exception ex)
{
//throw ex;
throw new Exception("StocksData数据库表Stocks保存时出错,退出!" + ex.ToString());
}
finally
{
cmd.Dispose();
con.Close();
}
}
报错为:从字符串转换为 datetime 时发生语法错误。单步跟踪三个数值为:stocks[i].StockInDate={2009-11-09 00:00:00}
stocks[i].StockOutDate = {1900-01-01 00:00:00}stocks[i].EnterDate = {2009-11-09 19:42:05}请大家帮忙看一下,错在哪???
解决方案 »
- c#中要判断输入的IP格式是否正确,该怎么写正则表达式啊,函数该怎么写
- webserivice发布到XP 的IIS上以后读取IIS路径返回文本
- 老实说挺讨厌学加密解密的
- 怎么在C#里面绘制坐标图啊
- 屏蔽鼠标右键,在winform里的webBrowse组件里
- 我想在目录的右键菜单上增加一项菜单,并调用我的程序,该如何实现???
- 把视频自动生成缩略图
- winform datagrid
- Windows Installer 3.1无法卸载
- 请教:有两个窗体:form1,form2.并用Application.Run启动其中的一个。请问,如何使一个显示,一个隐藏?
- dataset填充到数据库
- C#的listview 如何实现这种效果?貌似功能比较复杂呃
stocks[i].StockOutDate = {1900-01-01 00:00:00} stocks[i].EnterDate = {2009-11-09 19:42:05}
这里没错,
字符型是要用''引起来的,你的插入语句是否正确?
cmd.Parameters.AddWithValue("@StockInDate", DateTime.Parse(stocks[i].StockInDate.ToString()));
cmd.Parameters.AddWithValue("@StockOutDate", DateTime.Parse(stocks[i].StockOutDate.ToString()));
VALUES ('@ListNumber','@CustomerName','@Company','@ProductName','@ProductType','@ProductUnit','@Count','@Price','@Money','@ImportOrExport','@StockInDate','@StockOutDate','@Demo','@UserId','@DateTime EnterDate')
VALUES ('@ListNumber','@CustomerName','@Company','@ProductName','@ProductType','@ProductUnit','@Count','@Price','@Money','@ImportOrExport','@StockInDate','@StockOutDate','@Demo','@UserId','@EnterDate') 上面是错的,插入语句是这个!!
DateTime.Parse('yourtime');
par[0] = new SqlParameter("@StockInDate", SqlDbType.DateTime);
par[0].Value = stocks[i].StockInDate;
par[1] = new SqlParameter("@StockOutDate", SqlDbType.DateTime);
par[1].Value = stocks[i].StockOutDate;
par[2] = new SqlParameter("@EnterDate", SqlDbType.DateTime);
par[2].Value = System.DateTime.Now;
cmd.Parameters.AddRange(par);
三个时间都是DateTime类型!!