将字符串值传递给SQL server
本文关键字:SQL server 字符串 值传 | 更新日期: 2023-09-27 18:08:43
我使用SQL在c#中从SQL- server检索数据,如下所示:
var cmd = new SqlCommand(
"select *, replace(trucknocn, char(10), '') trucknocn1 from deliverylist where deliverydate=@scantime", sqlCon);
cmd.Parameters.Add("@scantime", SqlDbType.VarChar, 10).Value
= Calendar1.SelectedDate.ToString("yyyy-MM-dd");
da.SelectCommand = cmd;
我的问题是,我这样做是正确的,以避免我的客户端应用程序机器的区域设置问题。我能做些什么来完全避免区域设置问题?
谢谢
deliverydate
是varchar
吗?我不这么认为。
你可以直接添加DateTime
参数:
cmd.Parameters.Add("@scantime", SqlDbType.DateTime).Value = Calendar1.SelectedDate;
那么所有的区域设置问题都解决了,因为没有字符串->日期->字符串转换,比较是根据实际日期值进行的,而不仅仅是字符串表示。
如果deliverydate是varchar类型,那么我没有发现你的代码有任何问题,
但是如果deliverydate是datetime,那么修改代码如下-
你新代码:cmd.Parameters。Add("@scantime SqlDbType。VarChar(10)。Value = Calendar1.SelectedDate.ToString("yyyy-MM-dd");
cmd.Parameters。添加(@scantime SqlDbType.DateTime)。Value = Calendar1.SelectedDate;