首页 > 解决方案 > 函数不会在所有代码路径上返回值

问题描述

我正在开发一个创建随机生成的密钥的程序,并且对于生成的每个密钥,一个函数用于将其插入到本地创建的oleDB中。我遇到的问题是不知何故没有将密钥插入数据库。在 Insert 函数的末尾,它声明它不会向所有代码路径返回值,我不知道如何“修复”。

下面是 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

在此先感谢您的帮助!

标签: databasevb.netkeyoledb

解决方案


推荐阅读