2016-12-22 6 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

あなたのエラーは、トランザクションの不足のためではありません。また、1つの操作を実行するだけでトランザクションは必要なく、データベースエンジンは内部的に1つの操作を実行します。 – 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 at line trans.Rollback(); null参照が処理されなかった –

+0

@AlexはC#のサービスベースのデータベースSQL Express Serverですか? –

関連する問題