事务的使用示例及WinForm实现中的若干问题
2013-07-11 18:17
405 查看
--事务的使用示例 create database MyDB go use MyDB create 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) as begin declare @ts varchar(30), @tb int begin transaction update account set balance=balance+@total where id=@toId update account set @tb=balance, balance=balance-@total where id=@fromId if (select balance from account where id=@fromId)>=0 commit transaction else begin set @ts=convert(varchar(30), @total) --int类型转换为字符串,(30)可省略 raiserror('余额%d不足以转帐%s', 16, 1, @tb, @ts)--%d,%s为格式控制符 rollback transaction end end go exec transfer 1, 2, 1234 --测试,转帐不成功 select * from account exec 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; } }
相关文章推荐
- 事务的使用示例及WinForm实现中的若干问题
- c#中使用多线程访问winform中控件的若干问题
- c#中使用多线程访问winform中控件的若干问题
- c#中使用多线程访问winform中控件的若干问题(转)
- 使用事务实现--转账问题:从0001账户转1000块到0002账户。打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
- 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(转)
- C#中使用多线程访问Winform中控件的若干问题
- c#中使用多线程访问winform中控件的若干问题
- 使用注解方式实现Dubbo搭建,解决消费者调用接口出现空指针异常以及事务等问题
- 使用python实现拉钩网上的FizzBuzzWhizz问题示例
- 【转】c#中使用多线程访问winform中控件的若干问题
- c#中使用多线程访问 winform中控件的若干问题
- c#中使用多线程访问winform中控件的若干问题
- 使用keras深度学习实现回归问题示例
- c#中使用多线程访问winform中控件的若干问题
- 水晶报表问题汇总(水晶报表的使用与查询条件生成报表、注册码、打印问题、模式使用示例、C#.Net的WinForm中的使用、程序发布与部署)
- c#中使用多线程访问winform中控件的若干问题 解决线程间操作无效: 从不是创建控件的线程访问它
- 使用python实现拉钩网上的FizzBuzzWhizz问题示例
- 【Java EE 学习 19】【使用过滤器实现全站压缩】【使用ThreadLocal模式解决跨DAO事务回滚问题】
- WinCE5.0移动平台开发笔记(c#中使用多线程访问winform中控件的若干问题(zt))