2013-04-12 72 views
1

我使用SQL以检索从SQL-Server数据在C#中,象下面这样:传递字符串值到SQL Server

var cmd = new SqlCommand(
    "select *, replace(trucknocn, char(10), '') trucknocn1 from deliverylist where [email protected]", sqlCon);    
cmd.Parameters.Add("@scantime", SqlDbType.VarChar, 10).Value 
    = Calendar1.SelectedDate.ToString("yyyy-MM-dd");    

da.SelectCommand = cmd; 

我的问题是,我在这样做是为了避免区域设置问题,纠正我的客户端应用程序。我能做什么来完全避免区域设置问题?

感谢

+0

当你说区域设置问题时,你是在谈论不同的时区? –

回答

5

deliverydate一个varchar?我不这么认为。
你可以只添加参数为DateTime

cmd.Parameters.Add("@scantime", SqlDbType.DateTime).Value = Calendar1.SelectedDate; 

然后所有的区域设置问题都没有了,因为没有与字符串>日期 - >字符串转换,以及comparaison是在真正迄今取得基地值,而不仅仅是一个字符串表示。

0

如果deliverydate为varchar类型,那么我没有找到代码中的任何问题,

但如果deliverydate为datetime然后更改像下面的代码 -

您的

cmd.Parameters .Add(“@ scantime”,SqlDbType.VarChar,10).Value = Calendar1.SelectedDate.ToString(“yyyy-MM-dd”);

新代码:

cmd.Parameters.Add( “@ SCANTIME”,SqlDbType.DateTime)。价值= Calendar1.SelectedDate;