事务的使用示例及WinForm实现中的若干问题

来源:互联网 发布:js判断display属性 编辑:程序博客网 时间:2024/04/29 17:18
--事务的使用示例create database MyDBgouse MyDBcreate table account(Id int identity primary key,balance int --余额)insert into account values(1000)insert into account values(200)go--在存储过程中使用事务,简单转帐create procedure transfer(@fromId int, @toId int, @total int) asbegindeclare @ts varchar(30), @tb intbegin transactionupdate account set balance=balance+@total where id=@toIdupdate account set @tb=balance, balance=balance-@total where id=@fromIdif (select balance from account where id=@fromId)>=0commit transactionelsebeginset @ts=convert(varchar(30), @total) --int类型转换为字符串,(30)可省略raiserror('余额%d不足以转帐%s', 16, 1, @tb, @ts)--%d,%s为格式控制符rollback transactionendendgoexec transfer 1, 2, 1234 --测试,转帐不成功select * from accountexec transfer 1, 2, 500 --测试,转帐成功select * from account
//WinForm实现中的若干问题//单击DataGridView控件(名为dgvUser)时,把当前行的数据填充到文本框控件的方法private void dgvUser_Click(object sender, EventArgs e){txtUserName.Text = dgvUser.CurrentRow.Cells[0].Value.ToString();txtDescription.Text = dgvUser.CurrentRow.Cells[1].Value.ToString();txtPassword.Text = dgvUser.CurrentRow.Cells[2].Value.ToString();txtAuthority.Text = dgvUser.CurrentRow.Cells[3].Value.ToString();}//设置DataGridView控件(名为dgvUser)第三列不可见的语句dgvUser.Columns[2].Visible = false;//设置Button控件(名为btnInsert)不可用的语句btnInsert.Enabled = false;//控制只有一个子窗体(名为frmUser)的方法//设置主窗体的IsMdiContainer为True,WindowState为Maximized//menuUser为菜单项名private void menuUser_Click(object sender, EventArgs e){foreach (Form frm in this.MdiChildren)//关闭所有子窗体{frm.Close();}frmUser myFrmUser = new frmUser();myFrmUser.MdiParent = this;//设置为子窗体myFrmUser.WindowState = FormWindowState.Maximized;//最大化myFrmUser.Show();}//登录窗体(不要作为子窗体)关闭后才能做其他事情及菜单控制的方法private void cotrolMenu(string auth)//自定义函数,需据实际情况修改{if (auth == "0"){menuUser.Visible = true;menuReader.Visible = true;}else{menuUser.Visible = false;menuReader.Visible = false;}}private void menuLogin_Click(object sender, EventArgs e){myfrmLogin=new frmLogin();myfrmLogin.ShowDialog();//将窗体显示为模式对话框cotrolMenu(myClass.Authority);//myClass为类名,Authority为其中定义的公有变量}//确认退出程序的方法,删除确认类似private void frmMain_FormClosing(object sender, FormClosingEventArgs e){if (MessageBox.Show("Really Exit?", "Confirm Exit", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.No){e.Cancel = true;}}
原创粉丝点击