我有一個程序,用c#實時列出當前在列表框中運行的所有進程。我有一個問題插入到MySQL數據庫。我從進程的線程列表框中檢索數據,然後保存到數據庫。當列表框刷新時,我遇到了問題,重複將相同的數據插入到mysql數據庫中。得到當前正在運行的進程
有人可以幫助我嗎?
這是示例代碼
foreach (String item in listBox1.Items)
{
cmd.CommandText = "SELECT * FROM sample";
MySqlDataReader msdr = cmd.ExecuteReader();
while (msdr.Read())
{
var items = msdr["log"].ToString();
if(items != item)
{
String query = "INSERT INTO sample values('','"+item+"')";
cmd.CommandText = query;
using(MySqlDataReader reader = cmd.ExecuteReader())
{
reader.Close();
}
}
}
msdr.Close();
}
與您的程序明顯的問題是,當你做'如果(項目=項目!)'例如,如果在數據庫中結果的第一行包含一個會發生什麼不相同的項目將插入一個新項目到數據庫,但在數據庫記錄集的第二(或第三或第n)行可能有一個項目是相同的。這種情況會導致重複。 – mortb