事务的使用示例及WinForm实现中的若干问题
--事务的使用示例
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实现中的若干问题的更多相关文章
- xBIM 实战04 在WinForm窗体中实现IFC模型的加载与浏览
系列目录 [已更新最新开发文章,点击查看详细] WPF底层使用 DirectX 进行图形渲染.DirectX 能理解可由显卡直接渲染的高层元素,如纹理和渐变,所以 DirectX 效率更高. ...
- ThinkPHP 实现数据库事务回滚示例代码
ThinkPHP提供了数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法: 启动事务: $User->startTrans(); 提交事务: $User->commit( ...
- 后续来啦:Winform/WPF中快速搭建日志面板
后续来啦:Winform/WPF中快速搭建日志面板 继昨天发文ASP.NET Core 可视化日志组件使用(阅读文章,查看视频)后,视频下有朋友留言 "Winform客户端的程序能用它不?& ...
- .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...
- 在Winform程序中设置管理员权限及为用户组添加写入权限
在我们一些Winform程序中,往往需要具有一些特殊的权限才能操作系统文件,我们可以设置运行程序具有管理员权限或者设置运行程序的目录具有写入的权限,如果是在操作系统里面,我们可以设置运行程序以管理员身 ...
- C#将exe运行程序嵌入到自己的winform窗体中
以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:C将exe运行程序嵌入到自己的winform窗体中 - kingmax_res - iSport注意:该方法只适用于com的e ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
- 在Winform界面中实现对多文档窗体的参数传值
在Winform界面中窗体我们一般使用多文档进行展示,也就是类似一般的选项卡的方式可以加载多个窗体界面.一般来说,我们如果打开新的窗体,给窗体传递参数是很容易的事情,但是在框架层面,一般的窗体是通过动 ...
- 在Winform开发中使用日程控件XtraScheduler(2)--深入理解数据的存储
在上篇随笔<在Winform开发中使用日程控件XtraScheduler>中介绍了DevExpress的XtraScheduler日程控件的各种使用知识点,对于我们来说,日程控件不陌生,如 ...
随机推荐
- Android来电监听
本文实现来电自动接听,自动录音,自动回拨功能. public class MainActivity extends Activity { @Override protected void onCrea ...
- KMP原理、分析及C语言实现
(是在matrix67博客基础上整理而来,整理着:华科小涛@http://www.cnblogs.com/hust-ghtao/) 有些算法可以让人发疯,KMP算法就是一个.在网上找了很多资料讲的都让 ...
- Android开源框架AsyncHttpClient (android-async-http)使用
android-async-http 开源框架可以使我们轻松地获取网络数据或者向服务器发送数据,最关键的是,它是异步框架,在底层使用线程池处理并发请求,效率很高,使用又特别简单. 以往我们在安卓上做项 ...
- 怎样使用jstack诊断Java应用程序故障(转)
最近一段时间,我们的生产系统升级频繁出现故障,具体故障现象是启动后10来分钟就出现交易缓慢,处理线程耗尽等现象,并且故障发生的频率蛮高的.经过详细的诊断和排查,终于发现了问题,是groovy在osgi ...
- 利用Xtrabackup备份集合恢复一台从库的过程
1 time tar -xvf Open..tarx.gz real 35m22.502s user 10m16.499s sys 1m28.578s You have new m ...
- struts2由<s:tree>要么dtree小工具 建立树
一个 .<s:tree>方法: 1.引入新的标签: <%@ taglib prefix="sd" uri="/struts-dojo-tags" ...
- 可以根据柜子内表取出所有的柜子信息的BAPI函数
DATA: gt_hunumbers TYPE STANDARD TABLE OF bapihunumber, gt_huitem TYPE STANDARD TABLE OF bapih ...
- linux shell编程指南第十八章------控制流结构
在书写正确脚本前,大概讲一下退出状态.任何命令进行时都将返回一个退出状态.如 果要观察其退出状态,使用最后状态命令: $ echo $? 主要有4种退出状态.前面已经讲到了两种,即最后命令退出状态$ ...
- Linux内核参数信息(Oracle相关)
命令行:vim /etc/sysctl.conf 查看如下两行的设置值,这里是: kernel.shmall = 2097152 kernel.shmmax = 4294967295 如果系统默认的 ...
- Nubia Z5S 基于官方H207/4.4内核的Mokee4.4.4 RC3.2 (2014.7.31修复呼吸灯(能亮依旧不能呼吸))
特别感谢 yun3195 和 轻描淡写Yhw 帮忙測试 转帖请务必注明本链接地址: http://blog.csdn.net/syhost/article/details/36444259 此ROM ...