我正在将fromdate
和todate
从ASP.NET代码传递到SQL Server,但是在此过程中,两个日期的值都为空。
ASP.NET代码:
using (SqlCommand cmd = new SqlCommand("PRRNASTIEDOWNLOAD_Client", sqlConn))
{
cmd.Parameters.AddWithValue("@FROMDATE", System.DateTime.Now.ToString("yyyy-mm-dd", System.Globalization.CultureInfo.InvariantCulture));
cmd.Parameters.AddWithValue("@TODATE", System.DateTime.Now.ToString("yyyy-mm-dd", System.Globalization.CultureInfo.InvariantCulture));
if (sqlConn.State != ConnectionState.Open)
{
sqlConn.Open();
}
SqlDataReader rdr = cmd.ExecuteReader();
dt.Load(rdr);
}
但是我在过程中获取的日期值为null
答案 0 :(得分:2)
您需要像这样指定命令的类型:
cmd.CommandType = CommandType.StoredProcedure;
您需要指定您正在调用存储过程,而不是简单的命令文本。也可以看看: When executing a stored procedure, what is the benefit of using CommandType.StoredProcedure versus using CommandType.Text?
您还需要使用Add
而不是AddWithValue
来精确传递给SP的参数类型,如下所示:
cmd.Parameters.Add("@FROMDATE", System.Data.SqlDbType.DateTime).Value = System.DateTime.Now;
以下文章也可能很有趣: