locked
Visual Studio 2010 連接 MySQL 程式碼的問題 RRS feed

  • 問題

  • 請問一下我下列的程式碼哪裡出了問題嗎...?

    想要的功能一直沒有出來 >"<

    Imports MySql.Data.MySqlClient


    Public Class Form1
        Dim connstr As String = "Database=login;" & _
            "Data Source=localhost;" & _
            "User Id=root;passwrod=123456"
        Dim connection As New MySqlConnection(connstr)


        Function updateRecord(ByVal query As String) As Integer
            Try
                Dim rowsEffexted As Integer = 0
                Dim connection As New MySqlConnection(connstr)
                Dim cmd As New MySqlCommand(query, connection)

                connection.Open()
                rowsEffexted = cmd.ExecuteNonQuery()
                connection.Close()

                Return rowsEffexted
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Function
        Private Sub SubmitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SubmitButton.Click

            Console.WriteLine(updateRecord("INSERT INTO users (username, password) VALUES ('" & txtusername.Text & "','" & txtpassword.Text & "')"))

        End Sub
    End Class

    2012年5月3日 下午 03:27

解答

  • 你好,

    你的問題不屬于MySql上面的,只是你的VB 中的這個Function函數,在某些情況下可能沒有返囘值。比如出現異常的情況下。

    所以我建議你即使出現異常,也在Catch中返回一個適當的值:

      Function updateRecord(ByVal query As String) As Integer
        Try
          Dim rowsEffexted As Integer = 0
          '...
          Return rowsEffexted
        Catch ex As Exception
          Console.WriteLine(ex.Message)
          Return -1
        End Try
      End Function

    或者你選擇使用 Try ... Catch ... Finally:http://msdn.microsoft.com/zh-tw/library/fk6t46tz.aspx

      Function updateRecord(ByVal query As String) As Integer
        Dim rowsEffexted As Integer = 0
        Try
          '...
        Catch ex As Exception
          Console.WriteLine(ex.Message)
        Finally
          '...
        End Try
        Return rowsEffexted
      End Function


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已標示為解答 金針菇 2012年5月9日 上午 03:06
    2012年5月8日 上午 03:14

所有回覆

  • 你好,

    你的問題不屬于MySql上面的,只是你的VB 中的這個Function函數,在某些情況下可能沒有返囘值。比如出現異常的情況下。

    所以我建議你即使出現異常,也在Catch中返回一個適當的值:

      Function updateRecord(ByVal query As String) As Integer
        Try
          Dim rowsEffexted As Integer = 0
          '...
          Return rowsEffexted
        Catch ex As Exception
          Console.WriteLine(ex.Message)
          Return -1
        End Try
      End Function

    或者你選擇使用 Try ... Catch ... Finally:http://msdn.microsoft.com/zh-tw/library/fk6t46tz.aspx

      Function updateRecord(ByVal query As String) As Integer
        Dim rowsEffexted As Integer = 0
        Try
          '...
        Catch ex As Exception
          Console.WriteLine(ex.Message)
        Finally
          '...
        End Try
        Return rowsEffexted
      End Function


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已標示為解答 金針菇 2012年5月9日 上午 03:06
    2012年5月8日 上午 03:14
  • Dear Bob bao 您好~

    謝謝您,

    我的問題得到了很好的解答 ^^

    2012年5月9日 上午 03:06