string menuRecipe = "SELECT * FROM recipelist WHERE menu_ID = '" + menuID + "'";
MySqlCommand recipeCmd = new MySqlCommand(menuRecipe, db.mycon);
MySqlDataReader recipeDr = recipeCmd.ExecuteReader();
string[] info = new string[8];
while (recipeDr.Read())
{
info[1] = (recipeDr["recipe_ID"].ToString());
info[2] = (recipeDr["stock_ID"].ToString());
info[4] = (recipeDr["recipe_quantity"].ToString());
string stockName = "SELECT stock_name FROM stocksdb WHERE stock_ID = '" + info[2] + "'";
cmd = new MySqlCommand(stockName, db.mycon);
MySqlDataReader nameDr = cmd.ExecuteReader();
while (nameDr.Read())
{
info[3] = (nameDr["stock_name"].ToString());
}
this.recipeList.Items.Add(new ListViewItem(new string[] { info[1], info[2], info[3], info[4] }));
}
我主要想減少使用多個SQL命令字符串,但我不知道如何,以及如何將它們隔離到各自的位置,因爲有些可能會混亂起來。任何想法如何縮短這段代碼?
夥計們,我可以要求一個很好的鏈接? –
這可以通過DataReader輕鬆完成。我很困惑你的代碼試圖完成什麼。 recipelist和stocksdb之間的關係如何?您是否期望配方列表查詢有多個結果?你是否期待stocksdb查詢有多個結果?如果沒有,爲什麼他們在一個聲明而不是if語句?另外,連接sql字符串是一個壞習慣 - 您應該使用參數化查詢。 –
用於SQL的字符串連接是一個壞主意;這是SQL注入的祕訣。您應該使用參數化查詢。 – Servy