| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1764 人关注过本帖
标题:vb.net 中 sql 事务 至少执行几个SQL语句?
只看楼主 加入收藏
zhangwei
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2005-5-3
收藏
 问题点数:0 回复次数:5 
vb.net 中 sql 事务 至少执行几个SQL语句?

您好,我是刚学vb.net 的, 只插入一条记录 又开启事务怎么会有错误! 代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim datatransaction As SqlTransaction Try If mycon.State = ConnectionState.Closed Then mycon.Open() End If '打开连接 Dim data As New SqlParameter("@data", SqlDbType.SmallDateTime) '日期 Dim ID As New SqlParameter("@ID", SqlDbType.SmallInt, 10) 'ID Dim yhjr As New SqlParameter("@yhjr", SqlDbType.Money, 10) '银行金额 Dim jsjr As New SqlParameter("@jsjr", SqlDbType.Money, 13) '即时余额 Dim sfcf As New SqlParameter("@sfcf", SqlDbType.Bit) '是否拆分 Dim dm As New SqlParameter("@dm", SqlDbType.VarChar, 10) '代码 Dim sjhm As New SqlParameter("@sjhm", SqlDbType.VarChar, 10) '收据号码 Dim gx As New SqlParameter("@gx", SqlDbType.VarChar, 1) '管型 Dim lzjr As New SqlParameter("@lzjr", SqlDbType.Money, 10) '入账金额 Dim str As String Dim com1 As SqlCommand = New SqlCommand("select max(ID) from [" + Trim(ComboBox1.Text) + "]", mycon) '取最大ID Dim com2 As SqlCommand = New SqlCommand("select sum([" + Trim(ComboBox1.Text) + "].银行金额)+banks.初始余额 from [" _ + Trim(ComboBox1.Text) + "],banks where banks.ID=[9559900020000274717].卡号 group by banks.初始余额", mycon) '取最当前余额

str = "insert into [" + Trim(ComboBox1.Text) + "](ID,日期,银行金额,即时余额,是否拆分,代码,收据号码,管型,入账金额,是否结转)" + _ " values(@ID,@data,@yhjr,@jsjr,@sfcf,@dm,@sjhm,@gx,@lzjr,0)" Dim com As SqlCommand = New SqlCommand(str, mycon) datatransaction = mycon.BeginTransaction com.Transaction = datatransaction If Me.DataGrid2.Visible = False Then data.Value = CDate(Trim(TextBox2.Text)) ID.Value = CType(com1.ExecuteScalar, Integer) + 1 yhjr.Value = CDec(TextBox3.Text) jsjr.Value = CType(com2.ExecuteScalar, Decimal) + CDec(TextBox3.Text) sfcf.Value = 0 dm.Value = Trim(TextBox1.Text) sjhm.Value = Trim(TextBox4.Text) gx.Value = Trim(TextBox6.Text) lzjr.Value = CDec(TextBox3.Text) com.Parameters.Add(data) com.Parameters.Add(ID) com.Parameters.Add(yhjr) com.Parameters.Add(jsjr) com.Parameters.Add(sfcf) com.Parameters.Add(dm) com.Parameters.Add(sjhm) com.Parameters.Add(gx) com.Parameters.Add(lzjr) com.ExecuteNonQuery() '提交更新 datatransaction.Commit() '提交事务 MsgBox("保存成功!") TextBox1.Focus() Else Dim myrow As DataRow 'Dim com2 As SqlCommand = New SqlCommand("select sum(" + Trim(ComboBox1.Text) + ".银行金额)+banks.初始余额 from [" _ '+ Trim(ComboBox1.Text) + "],banks where banks.ID=[9559900020000274717].卡号 group by banks.初始余额", mycon) '取最当前余额 data.Value = CDate(Trim(TextBox2.Text)) ID.Value = CType(com1.ExecuteScalar, Integer) + 1 gx.Value = Trim(TextBox6.Text) sfcf.Value = 0 jsjr.Value = CType(com2.ExecuteScalar, Decimal) + CDec(TextBox3.Text) i = 0 For Each myrow In myset.Tables("cftable").Rows If i = 0 Then yhjr.Value = CDec(TextBox3.Text) '银行金额 重点 Else yhjr.Value = 0

End If dm.Value = myrow("代码") sjhm.Value = myrow("收据号码") lzjr.Value = myrow("入账金额") com.Parameters.Add(data) com.Parameters.Add(ID) com.Parameters.Add(yhjr) com.Parameters.Add(jsjr) com.Parameters.Add(sfcf) com.Parameters.Add(dm) com.Parameters.Add(sjhm) com.Parameters.Add(gx) com.Parameters.Add(lzjr) com.ExecuteNonQuery() '提交更新 datatransaction.Commit() MsgBox("保存成功!") TextBox1.Focus() i = +1 Next End If mycon.Close() '关闭连接 Catch datatransaction.Rollback() MsgBox("更新失败!") End Try End Sub

搜索更多相关主题的帖子: SQL sql 语句 事务 
2005-09-10 17:47
zhangwei
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2005-5-3
收藏
得分:0 
为什么,不开启事务就能成功插入记录.   开启事务之后就不行了......

主动沟通......
2005-09-13 19:07
zhangwei
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2005-5-3
收藏
得分:0 
!

主动沟通......
2005-09-22 09:52
wawy
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-9-23
收藏
得分:0 

对了 我也是刚学这个的 我要设计一个登陆的窗口但是老做不对 你能帮我做做吗? 我的代码是 Select Case ComboBox1.SelectedIndex Case -1 If ComboBox1.Text = "请选择" Then MessageBox.Show("请选择类型") End If Case 0 If TextBox1.Text = "zs" Then : TextBox2.Text = 123 : ComboBox1.Text = "学生"

MessageBox.Show("登陆成功")

Else : TextBox2.Text = 123 : TextBox1.Text = "zs" = False : ComboBox1.Text = "学生" = True MessageBox.Show("用户名不正确") If TextBox1.Text = "zs" = True Then : TextBox2.Text = 123 = False : ComboBox1.Text = "学生" = True MessageBox.Show("密码不正确")

If ComboBox1.Text = "学生" = False Then : TextBox1.Text = "zs" = True : TextBox2.Text = 123 = True : MessageBox.Show("你选择的类型不符") End If End If End If

2005-09-23 13:38
wawy
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-9-23
收藏
得分:0 
Select Case ComboBox1.SelectedIndex Case -1 If ComboBox1.Text = "请选择" Then MessageBox.Show("请选择类型") End If Case 0 If TextBox1.Text = "zs" Then : TextBox2.Text = 123 : ComboBox1.Text = "学生"

MessageBox.Show("登陆成功")

Else : TextBox2.Text = 123 : TextBox1.Text = "zs" = False : ComboBox1.Text = "学生" = True MessageBox.Show("用户名不正确") If TextBox1.Text = "zs" = True Then : TextBox2.Text = 123 = False : ComboBox1.Text = "学生" = True MessageBox.Show("密码不正确")

If ComboBox1.Text = "学生" = False Then : TextBox1.Text = "zs" = True : TextBox2.Text = 123 = True : MessageBox.Show("你选择的类型不符") End If End If End If

图片附件: 游客没有浏览图片的权限,请 登录注册
2005-09-23 13:43
zhangwei
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2005-5-3
收藏
得分:0 
老大,搞的这么复杂. 我的问题前几天就解决了.
    建议你,找本书看看别人是怎么做的.  我虽说是刚学但我己前用VFP做过一些小软件,多少还是有点经验的......

主动沟通......
2005-09-28 09:07
快速回复:vb.net 中 sql 事务 至少执行几个SQL语句?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019922 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved