2015-11-09 58 views
0

我試圖連接到mySql,但我有問題定位在哪裏做錯了。連接到mySQL與VB.NET從值

我的表單包含一個標籤,該標籤是要發佈到Score的數字,以及用戶鍵入其名稱以發佈在Navn中的文本框。

到目前爲止我的代碼是:

Imports System 
Imports System.Data 
Imports System.Data.SqlClient 
Public Class Form1 

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
     Dim connect As New SqlConnection("Data Source = mysqlAdress;Network Library= DBMSSOCN;Initial Catalog=**;User ID=**;Password=**;") 
     Dim query As String = "INSERT INTO 2048 VALUES(@score, @name)" 
     Dim command As New SqlCommand(query, connect) 

     command.Parameters.Add("@score", SqlDbType.Int).Value = Label1.Text 
     command.Parameters.Add("@navn", SqlDbType.VarChar).Value = TextBox1.Text 
     connect.Open() 
     connect.Close() 
    End Sub 

回答

2

你的表名應包含在反引號是這樣的:

Dim query As String = "INSERT INTO `2048` VALUES(@score, @name)" 

也儘量避免與這樣的命名約定,即,只有數字表名。 。

而且你打開,同時關閉連接。

connect.Open() 
connect.Close() 

嘗試這樣的:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    Dim connectionString As String = "Data Source = mysqlAdress;Network Library= DBMSSOCN;Initial Catalog=**;User ID=**;Password=**;" 
    Using SQLConnection As New MySqlConnection(connectionString) 
     Using sqlCommand As New MySqlCommand() 
      With sqlCommand 
       .CommandText = "INSERT INTO `2048` VALUES(@score, @name)" 
       .Connection = SQLConnection 
       .CommandType = CommandType.Text 
       .Parameters.AddWithValue("@score", Label1.Text) 
       .Parameters.AddWithValue("@name", TextBox1.Text) 
      End With 
      Try 
       SQLConnection.Open() 
       sqlCommand.ExecuteNonQuery() 
      Catch ex As MySqlException 
       MsgBox ex.Message.ToString 
      Finally 
       SQLConnection.Close() 
      End Try 
     End Using 
    End Using 
End Sub 
+0

我的腳本一直關閉在connect.Open() – Eyrik

+0

@Eyrik: - 我已經更新了代碼。請立即檢查! –

+0

'MySqlConnection','MySqlCommand'和'MySqlException'當屬 「沒有定義」 – Eyrik