我是vb.net和asp.net的初学者。我在保存日期时遇到问题,日期是来自DevExpress datepicker控件的字符串值。
列名为expiryDate
,其类型为date
。
这是我的ASPX标记:
<tr>
<td nowrap="nowrap" class="label" align="right" valign="top" style="width: 10%">
Expiry Date
</td>
<td style="width: 40%" valign="top">
<dxe:ASPxDateEdit ID="expiryDate"
runat="server"
EditFormat="Date"
Date="13/06/2014"
Width="200">
</dxe:ASPxDateEdit>
</td>
</tr>
在C#代码背后:
sqlSave = "INSERT INTO [Product] (Title, expiryDate) VALUES ("
sqlSave += " '" & txtProductName.Text.Trim().Replace("'", "''") & "', "
sqlSave += "" & expiryDate.Text & " )"
我使用expiryDate.Text
保存在数据库中,但保存的日期是:1900-01-01,有时我收到消息Operand type clash: int is incompatible with date
。
我不知道如何解决这个问题,请帮忙吗?
答案 0 :(得分:3)
试试这个,
sqlSave = "INSERT INTO [Product] (Title, expiryDate) VALUES ("
sqlSave += " '" & txtProductName.Text.Trim().Replace("'", "''") & "', "
sqlSave += "'" & Convert.ToDateTime(expiryDate.Text).ToString("yyyy-MM-dd") & "' )"
但是,我建议你使用参数化查询而不是简单的连接字符串。
cmd.CommandText = "INSERT INTO [Product] (Title, expiryDate) VALUES (@Title,@expiryDate)";
cmd.Parameters.Add("@Title", SqlDbType.VarChar).Value = txtProductName.Text.Trim().Replace("'", "''");
cmd.Parameters.Add("@expiryDate", SqlDbType.DateTime).Value = Convert.ToDateTime(expiryDate.Text);
答案 1 :(得分:0)
替换
" & expiryDate.Text & "
与
'" & expiryDate.Text & "'