读书人

为什么倒不进SQL?解决方案

发布时间: 2012-01-31 21:28:41 作者: rapoo

为什么倒不进SQL?
这个程序主要是读注册表软件的信息,然后一条一条导入到SQL SERVER里面去.可是发现SQL里一点反应都没有.
以下是一些代码;明天就要交差了,高手帮忙看看啊!
Private Sub Form_Load()
Dim strRgtInfo() As String
strRgtInfo = fnc_GetSubKeys(HKEY_LOCAL_MACHINE, KEYPATH)

Text1.Text = Winsock1.LocalHostName

Dim i As Integer
Dim strSQL As String
For i = 0 To UBound(strRgtInfo) Step 1
List1.AddItem (strRgtInfo(i))

strSQL = "insert into TESTTABLE values(" & vbCr
strSQL = strSQL & "'" & Text1.Text & "'," & vbCr
strSQL = strSQL & i & "," & vbCr
strSQL = strSQL & "'" & strRgtInfo(i) & "'" & vbCr
strSQL = strSQL & ")"

Call basSqlDataAccess.fnc_ExcuteSQL(strSQL)
Next i
End Sub

Private Sub List1_Click()

End Sub

Public Function fnc_ExcuteSQL(ByVal strSQL As String) As Boolean
fnc_ExcuteSQL = False
On Error GoTo ERR_LTN
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.CommandTimeout = 5
cn.Open "Driver={SQL Server};Server=a;DataBase=TEST", "sa", ""
cn.BeginTrans
cn.Execute (strSQL)
If True Then
cn.CommitTrans
fnc_ExcuteSQL = True
Else
cn.RollbackTrans
End If
cn.Close

ERR_LTN:
Exit Function
End Function


[解决办法]
代码里面肯定报错了,但是你用了On Error Goto语句,出错就直接退出函数了,把你的On Error Goto语句拿掉,然后自己调试看看。
[解决办法]
Public Function fnc_ExcuteSQL(ByVal strSQL As String) As Boolean
fnc_ExcuteSQL = False
On Error GoTo ERR_LTN
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.CommandTimeout = 5
cn.Open "Driver={SQL Server};Server=a;DataBase=TEST ", "sa ", " "
cn.BeginTrans
cn.Execute (strSQL)
If True Then
cn.CommitTrans
fnc_ExcuteSQL = True
Else
cn.RollbackTrans
End If
cn.Close

ERR_LTN:
Exit Function
End Function
检查这里面的代码.
[解决办法]
同意CloneCenter的意见,先看看是什么错误再说

[解决办法]
先检查一下INSERT的SQL语句最后生成的格式是否正确,还要注意TESTTABLE这个表的ID主键是否有设好增量标识。

读书人网 >VB Dotnet

热点推荐