2017-03-12 97 views
0

的連接必須是有效的和開放的數據插入SQL vb.net

執行下面的代碼時,會出現此錯誤。

conn.ConnectionString = "server=localhost; user id=root; password=woodward1892; database=matchinfo" 
     conn.Open() 
     cmd.Connection = conn 
     Dim d As Integer = 1 
     For j As Integer = 0 To lstT2players.Items.Count - 1 
      cmd = New MySqlCommand("Insert Into batsman2(`ID`, `PlayerName`) Values('" & d & "','" & lstT2players.Items.Item(j) & ")") 
      d = d + 1 
     Next 
     cmd.ExecuteNonQuery() 
     conn.Close() 

請幫助我嗎?

回答

0

當您構建MySqlCommand時,您應該使用採用MySqlConnection的重載,否則該命令不知道要使用哪個數據庫。之後,ExecuteNOnQuery應該位於For循環內,否則只運行最後一條命令。最後使用參數而不是字符串連接

Using conn = new MySqlConnection("server=localhost; user id=root; password=woodward1892; database=matchinfo") 
Using cmd = conn.CreateCommand() 
    conn.Open() 
    string cmdText = @"Insert Into batsman2(`ID`, `PlayerName`) 
         Values(@id, @name)" 
    cmd.CommandText = cmdText 
    cmd.Parameters.Add("@id", MySqlDbType.Int32) 
    cmd.Parameters.Add("@name", MySqlDbType.VarWChar) 
    Dim d As Integer = 1 
    For j As Integer = 0 To lstT2players.Items.Count - 1 
     cmd.Parameters["@id"].Value = d 
     cmd.Parameters["@name"].Value = lstT2players.Items.Item(j).ToString() 
     cmd.ExecuteNonQuery() 
     d = d + 1 
    Next 
End Using 
End Using