У меня есть хранимая процедура с инструкцией по обновлению. Требуется 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
}
Когда я делаю это, поля статуса и даты являются нулями в базе данных. Я не знаю, почему это происходит? Благодаря Рашми
Я предполагаю @ во втором параметре cmd.Parameters.AddWithValue («@ datenow» ... опечатка – pquest
"Я не знаю, почему это происходит? «возможно, не проглатывание исключения дало бы вам некоторое представление? –
@pquest, что должно быть хорошо - вы можете добавить' @ 'в начало имени переменной aC# - он используется для использования зарезервированных слов в качестве имен переменных (например,' @class ') –