简单问题等待!初学者提问!!关于Execute的返回值问题!!!

lulu_xiaoniu 2010-12-08 05:10:18
我现在要往数据库里插入内容,想获得Execute的执行结果,当执行结果>0,则提示插入成功,否则提示插入失败!现在不知道怎么获得Execute的返回结果,我的代码如下:

Private Sub Command1_Click()
Dim strsql As String
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set cmd = New ADODB.Command
strsql = "server=.;database=DB;uid=sa;pwd=123"
con.ConnectionString = strsql
con.Provider = "SQLOLEDB"
con.Open
cmd.CommandText = "insert into yh values('" + Text1.Text + "','" + Text2.Text + "')"
cmd.ActiveConnection = con

cmd.Execute

现在如何获得上面这句的返回结果,如果有执行结果则提示下面的‘添加成功’的提示。
MsgBox ("添加成功")

End Sub

请给段代码!谢谢啦!
...全文
250 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lulu_xiaoniu 2010-12-08
  • 打赏
  • 举报
回复
没人知道吗?
lulu_xiaoniu 2010-12-08
  • 打赏
  • 举报
回复
帮个忙啦!!
lulu_xiaoniu 2010-12-08
  • 打赏
  • 举报
回复
没有人知道吗?
lxq19851204 2010-12-08
  • 打赏
  • 举报
回复
20分够值钱的..问2个问题
lulu_xiaoniu 2010-12-08
  • 打赏
  • 举报
回复
可以连上数据库的!
dbcontrols 2010-12-08
  • 打赏
  • 举报
回复
ConnectionString有问题,没连上数据库
lulu_xiaoniu 2010-12-08
  • 打赏
  • 举报
回复
现在又遇到一个问题,我想把检索出来的内容绑定给datagrid1,但是现在有问题,语句如下:
Private Sub Command1_Click()
Dim strsql As String
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset

Set con = New ADODB.Connection
Set cmd = New ADODB.Command
Set rs = New ADODB.Recordset
strsql = "server=.;database=DB;uid=sa;pwd=123"

con.ConnectionString = strsql
con.Provider = "SQLOLEDB"

con.Open

cmd.CommandText = "select * from yh"
cmd.ActiveConnection = con

Set rs = con.Execute(cmd.CommandText, n)

Set DataGrid1.DataSource = rs

End Sub
现在提示上面这句‘行集合不能作为标签’,请帮忙解决!谢谢!
lxq19851204 2010-12-08
  • 打赏
  • 举报
回复
con.Execute strsql, n
lulu_xiaoniu 2010-12-08
  • 打赏
  • 举报
回复
用楼上的方法:

Dim n As Integer

cmd.Execute strsql, n

提示没有为命令对象设置命令!!!
lxq19851204 2010-12-08
  • 打赏
  • 举报
回复
DCN.Execute sCmd, n
成功,N为非0
dbcontrols 2010-12-08
  • 打赏
  • 举报
回复
Error 对象包含与单个操作(涉及提供者)有关的数据访问错误的详细信息。




说明

任何涉及 ADO 对象的操作都会生成一个或多个提供者错误。每个错误出现时,一个或多个 Error 对象将被放到 Connection 对象的 Errors 集合中。当另一个 ADO 操作产生错误时,Errors 集合将被清空,并在其中放入新的 Error 对象集。

注意 每个 Error 对象都代表特定的提供者错误而不是 ADO 错误,ADO 错误被记载到运行时的例外处理机制中。例如,在 Microsoft Visual Basic 中,产生特定 ADO 的错误将触发 On Error 事件并出现在 Err 对象中。关于 ADO 错误的完整列表,请参阅 ADO 错误代码主题。

通过 Error 对象的属性可获得每个错误的详细信息,其中包括以下内容:

Description 属性,包含错误的文本。


Number 属性,包含错误常量的长整型整数值。


Source 属性,标识产生错误的对象。在向数据源发出请求之后,如果 Errors 集合中有多个 Error 对象,则将会用到该属性。


SQLState 和 NativeError 属性,提供来自 SQL 数据源的信息。
出现提供者错误时,Error 对象将被放在 Connection 对象的 Errors 集合中。ADO 支持由单个 ADO 操作返回多个错误,以便显示特定提供者的错误信息。要在错误处理程序中获得丰富的错误信息,可使用相应的语言或所在工作环境下的错误捕获功能,然后使用嵌套循环枚举出 Errors 集合的每个 Error 对象的属性。

Microsoft Visual Basic 及 VBScript 如果没有有效的 Connection 对象,则需要检索 Err 对象的错误信息。

与提供者一样,ADO 在进行可能引发新的提供者错误的调用前将清除 OLE Error Info 对象。但是,只有当提供者产生新的错误或 Clear 方法被调用时,才能清空并充填 Connection 对象的 Errors 集合。

某些属性和方法返回的警告以 Errors 集合中的 Error 对象的方式出现,但并不中止程序的执行。在调用 Recordset 对象的 Resync、UpdateBatch、或 CancelBatch 方法,或 Connection 对象的 Open 方法,或者在设置 Recordset 对象的 Filter 属性之前,可通过调用 Errors 集合的 Clear 方法。这样就可以读取 Errors 集合的 Count 属性,以测试返回的警告。
dbcontrols 2010-12-08
  • 打赏
  • 举报
回复
微软说是使用On Error GoTo 来判断
dbcontrols 2010-12-08
  • 打赏
  • 举报
回复
Public Sub ExecuteX()

Dim strSQLChange As String
Dim strSQLRestore As String
Dim strCnn As String
Dim cnn1 As ADODB.Connection
Dim cmdChange As ADODB.Command
Dim rstTitles As ADODB.Recordset
Dim errLoop As ADODB.Error

' 定义两个 SQL 语句作为命令文本执行。
strSQLChange = "UPDATE Titles SET Type = " & _
"'self_help' WHERE Type = 'psychology'"
strSQLRestore = "UPDATE Titles SET Type = " & _
"'psychology' WHERE Type = 'self_help'"

' 打开连接。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set cnn1 = New ADODB.Connection
cnn1.Open strCnn

' 创建命令对象。
Set cmdChange = New ADODB.Command
Set cmdChange.ActiveConnection = cnn1
cmdChange.CommandText = strSQLChange

' 打开标题表。
Set rstTitles = New ADODB.Recordset
rstTitles.Open "titles", cnn1, , , adCmdTable

' 打印原始数据报告。
Debug.Print _
"Data in Titles table before executing the query"
PrintOutput rstTitles

' 清除 Errors 集合的外部错误。
cnn1.Errors.Clear

' 调用 ExecuteCommand 子例程执行 cmdChange 命令。
ExecuteCommand cmdChange, rstTitles

' 打印新数据报告。
Debug.Print _
"Data in Titles table after executing the query"
PrintOutput rstTitles

' 使用 Connection 对象的 execute 方法执行 SQL 语句以恢复数据。
' 捕获错误,必要时检查 Errors 集合。
On Error GoTo Err_Execute
cnn1.Execute strSQLRestore, , adExecuteNoRecords
On Error GoTo 0

' 通过再查询记录集检索当前数据。
rstTitles.Requery

' 打印已恢复数据的报告。
Debug.Print "Data after executing the query " & _
"to restore the original information"
PrintOutput rstTitles

rstTitles.Close
cnn1.Close

Exit Sub

Err_Execute:

' 将任何由执行查询引起的错误通知用户。
If Errors.Count > 0 Then
For Each errLoop In Errors
MsgBox "Error number: " & errLoop.Number & vbCr & _
errLoop.Description
Next errLoop
End If

Resume Next

End Sub

Public Sub ExecuteCommand(cmdTemp As ADODB.Command, _
rstTemp As ADODB.Recordset)

Dim errLoop As Error

' 运行指定的 Command 对象。捕获错误,必要时检查 Errors 集合。
On Error GoTo Err_Execute
cmdTemp.Execute
On Error GoTo 0

' 通过再查询记录集检索当前数据。
rstTemp.Requery

Exit Sub

Err_Execute:

' 将任何由执行查询引起的错误通知用户。
If Errors.Count > 0 Then
For Each errLoop In Errors
MsgBox "Error number: " & errLoop.Number & vbCr & _
errLoop.Description
Next errLoop
End If

Resume Next

End Sub

Public Sub PrintOutput(rstTemp As ADODB.Recordset)

' 枚举 Recordset。
Do While Not rstTemp.EOF
Debug.Print " " & rstTemp!Title & _
", " & rstTemp!Type
rstTemp.MoveNext
Loop

End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧