在我的代码中,我试图更新一个colume类型DATE但面临这个问题

时间:2015-07-20 04:38:24

标签: c# sql winforms datetime sql-update

从'Int32'到'DateTime'的无效投射。无法存储< 1>在Tdate专栏。预期类型是DateTime。 我的查询如下 更新LogMail设置Tdate = '20 -Jul-15 12:00:00 AM'

我的代码在下面给出

 DateTime dtCurrTime = DateTime.Today;
 string d = dtCurrTime.ToString();

 string sQuery1 = "Update LogMail set Tdate= '"+Convert.ToDateTime(d)+"' ";
 DBInteraction.DBOperation.sConnectionString = GlobalFuncs.sConnectionString;
 sRetVal = DBOperation.ExecuteDBOperation(sQuery1, DBOperation.OperationType.UPDATE, null, ref dt);
 if (sRetVal == GlobalFuncs.SUCCESS)
 {
     Challan.EmailForPandingMaterial em=new Challan.EmailForPandingMaterial();
     em.ShowDialog(); 
     this.Hide();
 }

数据库有DBinteraction类,DBOperation是它的方法,它在所有其他程序中运行正常。请帮我找到正确的错误。感谢

2 个答案:

答案 0 :(得分:0)

尝试使用DateTime.Now

string sQuery1 = "Update LogMail set Tdate= '"+DateTime.Now+"' ";

看看它是否会产生相同的错误。检查数据库中的数据类型以确保它具有正确的数据类型。

或尝试以下列日期格式保存日期,因为这是MS SQL中的默认格式' yyyy-MM-dd'

答案 1 :(得分:0)

// any custom format depending on your needs:
string d = dtCurrTime.ToString("yyyy-MM-dd HH:mm:ss"); 

string sQuery1 = "Update LogMail set Tdate= '"+d+"' ";