У меня есть две кнопки на странице, одна из которых регистрирует время начала и время, в которое записывается время окончания.SQL Output Inserted
Кнопка времени начала выполняет вкладку sql. В этот момент мне нужно захватить первичный ключ, который создается. Для этого я хочу использовать команду sql (вывод вставлен).
Затем, когда щелкнули время остановки, строка должна обновляться со временем остановки, используя первичный ключ от начала в предложении where. Я считаю, что вставка SQL верна, но я не знаю, как передать первичный ключ следующей команде.
Код дампа, с которым я до сих пор.
var command1 = "INSERT INTO [Time] ([Start Time], [Work Order]) OUTPUT INSERTED.PrimaryKey VALUES (@StartTime, @Work_Order)";
using (SqlConnection cnn1 = new SqlConnection(cnnString))
{
using (SqlCommand cmd1 = new SqlCommand(command1, cnn1))
{
cmd1.Parameters.AddWithValue("@StartTime", SqlDbType.DateTime).Value = System.DateTime.Now;
cmd1.Parameters.AddWithValue("@Work_Order", SqlDbType.Int).Value = e.CommandArgument;
cnn1.Open();
Label1.Text = cmd1.ExecuteScalar().ToString();
cnn1.Close();
}
}
var command = "UPDATE [Time] SET [Stop Time] = @StopTime WHERE [PrimaryKey] = @PrimaryKey";
using (SqlConnection cnn = new SqlConnection(cnnString))
{
using (SqlCommand cmd = new SqlCommand(command, cnn))
{
cmd.Parameters.AddWithValue("@StopTime", SqlDbType.DateTime).Value = System.DateTime.Now;
cmd.Parameters.AddWithValue("@PrimaryKey", *PrimaryKey from INSERT output*
cnn.Open();
cmd.ExecuteNonQuery();
}
}
почему вы не используете хранимые процедуры ?? в хранимых процедурах вы можете легко это сделать –
'cmd.Parameters.AddWithValue (« @ PrimaryKey », PrimaryKey из вывода INSERT « определенно не очень хороший подход к этому ». Создайте хранимую процедуру и узнайте, как использовать' SqlParameter' и как использовать 'ParameterDirection.Output' сделать это в Хранимой процедуре, а в Хранимой процедуре назначить ваш OutPut Param = SELECT SCOPE_IDENTITY() AS pk – MethodMan
Я никогда не делал хранимую процедуру до того, чтобы сначала попробовать разные вещи. в мое свободное время. До того, как я это сделал, я хотел, чтобы я увидел, есть ли другой способ, которым я больше привык. – Itomship