2017-05-02 38 views
-1

我想插入多個數據到我的數據庫。我正在使用for-each語句來獲取數據,並且當我插入數據庫時​​,它會爲每行生成10行(取決於我檢索的數據的數量)隨行,而不是全部行中的一行在一行中。這裏是我正在使用的for-each語句。如何將多個數據插入數據庫?

foreach(var kiev in dict) 
    { 
     string na = kiev.Key; 
     if(na != "db_table_name") 
     { 
      string quer = "insert into " + HttpContext.Current.Session["tablename"].ToString() + " (" + kiev.Key + ") VALUES ('" + kiev.Value + "') "; 
      SqlCommand cl = new SqlCommand(quer, con); 
      cl.ExecuteNonQuery(); 
     } 
    } 
+0

什麼這裏面臨ür是問題嗎? – Sachu

+0

爲你的sql查詢使用參數而不是字符串連接。 – prospector

+0

當我插入數據時,可以說10個數據,它會在我的數據庫中創建10行,每行有一個數據 – Wasd

回答

0

還有像「SqlBulkCopy的」更好的選擇,因爲已經在評論中提到可用,但也像這應該工作:

string tablename = ""; 
string values = ""; 
string keys = ""; 

foreach(var kiev in dict) 
    { 
     string na = kiev.Key; 
     if(na != "db_table_name") 
     { 
       keys += kiev.Key + ", "; 
       values += "'" + kiev.Value + "', "; 
     } 
    } 
keys = keys.Remove(keys.Length - 2); 
values = values.Remove(values.Length - 2); 

string quer = "insert into " + HttpContext.Current.Session["tablename"].ToString() + " (" + keys + ") VALUES (" + values + ") "; 

SqlCommand cl = new SqlCommand(quer, con); 
cl.ExecuteNonQuery();