2016-12-22 3 views
-4

Я пытался использовать этот код без транзакции, но он дал мне ошибку, поэтому я хочу использовать его с транзакцией. Как я могу это использовать?Как я могу использовать транзакцию в этом коде?

Мой код:

SqlConnection con= new SqlConnection("Data Source=.;Initial Catalog=Sample;Integrated Security=true;"); 

SqlCommand cmd; 
SqlDataAdapter adapt; 

private void btn_Update_Click(object sender, EventArgs e) 
{ 
    string query = "insert into users(Name, Password) values('ubaid', 'ali')"; 
    cmd = new SqlCommand(query, con); 

    con.Open(); 
    cmd.ExecuteNonQuery(); 

    MessageBox.Show("Record Updated Successfully"); 
    con.Close(); 
} 
+0

Ваша ошибка не из-за отсутствия транзакции. И вам не нужна транзакция, когда вы просто выполняете одну операцию, механизм базы данных уже делает ее внутри. – Crowcoder

+0

'но это дало мне ошибку' Вы думаете, что ваш вопрос сейчас понятен? –

+0

@Crowcoder, но без данных транзакции не обновляется и не дает никакой ошибки, он просто показывает запись, обновленную на самом деле ее не обновляемую –

ответ

0
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Sample;Integrated Security=true;"); 
SqlCommand cmd; 
SqlDataAdapter adapt; 
SqlTransaction trans; 

private void btn_Update_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     con.Open(); 
     trans = con.BeginTransaction();  // Begins transaction 

     string query = "insert into users(Name,Password)values('ubaid','ali')"; 
     cmd = new SqlCommand(query, con); 
     cmd.ExecuteNonQuery(); 
     MessageBox.Show("Record Updated Successfully"); 
     con.Close(); 

     trans.Commit(); 
    } 
    catch (Exception ex) //error occurred 
    { 
     trans.Rollback(); // Rollback transaction on error 
    } 
} 

Попробуйте приведенный выше код. Надеюсь, это поможет вам.

+1

@ kashap4u на линии trans.Rollback(); Нулевая ссылка не была обработана –

+0

@ Alex - это база данных sql-сервера, основанная на сервисах C#? –

Смежные вопросы