参数日期转换

时间:2010-08-28 06:18:53

标签: visual-studio

我正在使用C#,VS 2005和SQL 2000

我的日期转换问题我的SQL表有以下字段

字段:

datefrom    
dateto

我在C#中的SQL查询是

string sql = "insert into companymast (cname, datefrom, dateto) values(@cname, @datefrom, @dateto)";

SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.Add("@cname",SqlDbType.Varchar(50)).Values = cname.text;
cmd.Parameters.Add("@datefrom",SqlDbType.Datetime).Values = maskedTextBox1.text;
cmd.Parameters.Add("@dateto",SqlDbType.Datetime).Values = maskedTextBox2.text;
cmd.ExecuteNonQuery();

但是上面的抛出错误就像日期非转换字符串到日期

我必须将日期放在dd/MM/yyyy格式代码中,103

所以我该怎么做?

请帮帮我。

1 个答案:

答案 0 :(得分:0)

maskedBox1.text是一个字符串。您将其分配给SqlParameter的数据成员,并尝试将收到的内容转换为您请求的数据类型。

更明确的解决方案是明确转换为DateTime,并将转换后的值传递给SqlParameter。通过这种方式,您可以更好地控制转换,并且您可以确切地看到它出错的地点和原因。例如:

DateTime fromDate = DateTime.Parse(maskedTextBox1.text);
cmd.Parameters.Add("@datefrom",SqlDbType.Datetime).Values= fromDate;

对于DateTime.Parse,请参阅:http://msdn.microsoft.com/en-us/library/1k1skd40.aspx