vb.net中ExecuteNonQuery返回值的问题 急!!
我的sql语句是 begin update EMP set DEPID='1' where NID=:NID; end在程序中设定了parameter,但实际上数据库中没有数据,所以不会更新任何纪录。
执行 ExecuteNonQuery()后 所取得的返回值为什么是1,而不是0? --------------------编程问答-------------------- 你把begin end去掉看看 --------------------编程问答-------------------- 去掉后返回值是正确的,但是程序要求加入begin end 因为有执行多条sql的情况 --------------------编程问答-------------------- 那假如多条SQL中含有两条更新的语句,你说让它返回哪条语句的更新结果
为什么要一次搞多条,用事务处理不行吗 --------------------编程问答-------------------- 多条执行用事务来处理。 --------------------编程问答-------------------- 原来还可以这样用Begin,End --------------------编程问答-------------------- 如果要执行多条语句的话 最好还是用事务来处理 不知道要求用Begin end是什么意思…… --------------------编程问答-------------------- 它返回的是数据库在更新等操作时所受影响的行数. --------------------编程问答--------------------
它返回的是数据库执行非查询语句[NONQUERY]操作时所受影响的行数. --------------------编程问答-------------------- 经高人指点后自己写的事务,给你参考,可能很乱,或者还有错,希望还有高人指点
--------------------编程问答-------------------- begin update EMP set DEPID='1' where NID=:NID; SET @C = @@ROWCOUNT end
sqlconn.Open()
Dim sqlTrans As SqlTransaction = sqlconn.BeginTransaction()
Dim sqlCom As New SqlCommand
Dim sqlComClass As New SqlCommand
sqlCom.Transaction = sqlTrans
sqlComClass.Transaction = sqlTrans
Try
sqlCom.Connection = sqlconn
'编辑进入时
sqlCom.CommandText = "update student set student.name='" & name & "',student.sex= '" & sex & "',student.age='" & age & "',student.class='" & banji & "',student.birthday='" & birthday & "',student.leave='" & leave & "' where sid=" & sid
sqlCom.ExecuteNonQuery()
sqlComClass.Connection = sqlconn
sqlComClass.CommandText = "update stuAddress set stuAddress.address_first='" & address_fst & "',stuAddress.address_second='" & address_snd & "' where sid=" & sid
count = sqlComClass.ExecuteNonQuery()
If count = 0 Then
sqlComClass.CommandText = "insert into stuAddress (stuAddress.address_first,stuAddress.address_second,sid) values('" & address_fst & "','" & address_snd & "'," & sid & ")"
MsgBox(sqlComClass.CommandText)
count = sqlComClass.ExecuteNonQuery()
End If
MsgBox(count)
'结束事务处理
sqlTrans.Commit()
Catch ex As Exception
'事务回滚
sqlTrans.Rollback()
Console.Write("<script language=javascript>alert(\'数据库操作失败!\')</script>")
Return
Finally
sqlCom.Dispose()
sqlCom.Connection.Close()
sqlconn.Close()
End Try
作为参数@C返回
补充:.NET技术 , VB.NET