ADO中使用儲存過程_sql事務

app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add connectionString="Data Source=PC-20120110JFDT;Initial Catalog=test1;Persist Security Info=True;User ID=sa;Password=yhb" name="connstr" />
    <add connectionString="Data Source=PC-20120110JFDT;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=yhb" name="connstr2" />
    <add connectionString="Data Source=PC-20120110JFDT;Initial Catalog=School;Persist Security Info=True;User ID=sa;Password=yhb" name="connstr3" />

  </connectionStrings>
</configuration>

 

c#:

 private void button3_Click(object sender, EventArgs e)
        {
            string connstr= ConfigurationManager.ConnectionStrings["connstr3"].ConnectionString;
            using(SqlConnection conn=new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand("usp_money", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@_output", textBox3.Text));
                    cmd.Parameters.Add(new SqlParameter("@_input", textBox4.Text));
                    cmd.Parameters.Add(new SqlParameter("@_money", textBox5.Text));
                    int ok= cmd.ExecuteNonQuery();
                    if (ok >= 1)
                    {
                        MessageBox.Show("轉賬成功");
                    }
                    else
                    {
                        MessageBox.Show("轉賬失敗");
                    }

                }
            }
        }

sql:

create proc usp_money @_input varchar(50)='001',@_output varchar(50),@_money money
as
begin
begin try--錯誤捕捉
begin tran--打開事務
update bank set balacnce=balacnce-@_money where cid=@_output
update bank set balacnce=balacnce+@_money where cid=@_input
commit--提交事務
end try--錯誤捕捉
begin catch--錯誤處理
rollback--回滾
end catch--錯誤處理
end
drop proc usp_money

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章