我正在开发一个程序,该程序创建随机生成的密钥,并且对于每个生成的密钥,都会使用一个函数将其插入到本地创建的 oleDB 中。我的问题是,不知何故没有将密钥插入数据库。在插入函数的末尾,它声明它不会向所有代码路径返回值,而我不知道该如何“修复”。
下面是InsertData函数:
Public Function InsertData(ByVal sKey As String, ByVal sUsability As String, ByVal sAssNr As String, ByVal sAvailability As String, ByVal sToday As Date, ByVal sUsername As String, ByVal sAvailavble As Byte) As String
Try
Dim sqlconn As New OleDb.OleDbConnection
Dim sqlquery As New OleDb.OleDbCommand
Dim connString As String
connString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & modMain.msv_sMSAccess_File_Path & "\" & modMain.msv_sMSAccess_File_Name & "; Jet OLEDB:Database Password=" & modCrypto.Decrypt(modMain.msv_sMSAccess_File_Password, modMain.sKey, modMain.sSalt, 256) & ";ole db services=-4;" ';ole db services = -4 >> kein connection pooling
sqlconn.ConnectionString = connString
sqlquery.Connection = sqlconn
sqlconn.Open()
sqlquery.CommandText = "Insert Into " & frmMain.ToolStrip_Main_SelectYr.Text & "(Gutscheincode, Verwendungsanzahl, Assistent, Gueltig_bis, Erstellt_am, Erstellt_vom, verbraucht) VALUES ('" & sKey & "','" & sUsability & "','" & sAssNr & "','" & sAvailability & "','" & sToday & "','" & sUsername & "','" & sAvailavble & "');"
sqlconn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Function
这是创建数据库的功能:
Friend Function createTable(ByVal sTablename As String, ByVal iYear As Integer) As Boolean
Dim VoucherDB As New OleDbConnection(getProviderString())
Dim SQLStr As String = "CREATE TABLE " & sTablename & iYear & " (voucher_ID COUNTER NOT NULL CONSTRAINT PK_ID_no PRIMARY KEY, " &
"Gutscheincode Varchar(255) ," &
"Verwendungsanzahl Varchar(255) ," &
"Assistent Varchar(255) ," &
"Gueltig_bis Varchar(255) ," &
"Erstellt_am DateTime DEFAULT Now, " &
"Erstellt_vom Varchar(255) ," &
"Verbraucht Bit DEFAULT FALSE " &
")" 'wichtig bei der letzten Spalte >> Rechnungsnummer darf hinter dem Datentyp kein Komma mehr stehen
Dim DBCommand As OleDbCommand = New OleDbCommand(SQLStr, VoucherDB)
Try
VoucherDB.Open() 'Payment Tabelle erzeugen
DBCommand.ExecuteNonQuery()
VoucherDB.Close()
VoucherDB.Dispose()
Return True
Catch ex As OleDbException
frmMain.LogMessage(modMain.msv_sAppname_Short & ", Fehler beim erstellen der Leerdatenbank " & modMain.sMSAccess_File_Name & ". Es kam zu folgender Exception : " & ex.Message, 3)
If VoucherDB IsNot Nothing Then VoucherDB.Close()
Return False
End Try
End Function
预先感谢您的帮助!