我在使用C#將多行插入到MySQL數據庫時遇到問題,請使用以下代碼;使用1個連接插入MySQL數據庫(C#.NET)
//Upload to mysql
string connStr = "server=server;user=username;database=databasae;port=3306;password=password;";
MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
foreach (Channel chan in results)
{
// Perform databse operations
try
{
//Create sql statment with parameters
string sql = "INSERT INTO channels(ID, Name) VALUES (@id,@name)";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@id", chan.ID);
cmd.Parameters.AddWithValue("@name", chan.Name);
cmd.ExecuteNonQuery();
updateStatus("Inserted");
}
catch (Exception ex)
{
updateStatus(ex.Message.ToString());
}
conn.Close();
我似乎越來越「連接必須是有效的和開放的」。從我可以看到我正確傳遞連接字符串,並使用ExecuteNonQuery。和想法?
感謝
檢查'conn.Open()'後的連接狀態是否正常? – Marco 2011-05-09 09:15:23
您是否在foreach結尾處關閉連接?如果是的話,你應該在foreach循環不在裏面之後這樣做。除了這個例子,你也缺少}關閉foreach循環。 – Ruben 2011-05-09 09:16:01
在循環外部創建Command和Parameter對象會更高效。然後,您可以更改這兩個參數的值,並在循環內調用「ExecuteNonQuery」。 – 2011-05-09 19:05:08