我有了一个更新语句的存储过程。它需要3个参数:ID,状态,日期C#SQLSERVER存储过程的参数
我写了一个C#程序来调用这个过程。如果状态为-1,我希望日期在表中为空,如果状态为1,则日期应该是当前日期。
Int32 rowsAffected = 0;
string datenow =null;
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString))
{
connection.Open();
SqlCommand cmd = new SqlCommand(
"usp_UpdateProc", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@status", SqlDbType.Int);
cmd.Parameters["@status"].Value = status;
if(status != 1)
datenow = DateTime.Now.ToString(@"MM\/dd\/yyyy h\:mm tt");
cmd.Parameters.AddWithValue("@datenow", @datenow);
cmd.Parameters.Add(
new SqlParameter("@ID", @ID));
try
{
rowsAffected = cmd.ExecuteNonQuery();
}
catch (Exception ep)
{ //throw ep
}
当我这样做的状态和日期字段都是数据库中的空值。我不知道为什么会发生这种情况? 感谢 Rashmi
我承担cmd.Parameters.AddWithValue的第二个参数@(“@ datenow” ...是一个错字 – pquest
“我不知道为什么会这样? “也许不是吞咽异常会给你一些有识之士 –
@pquest这应该是罚款 - 你可以添加一个'@'交流#变量名称的前面 - 这是用来将保留字作为变量名(如'@class ') –