2016-08-14 58 views
-3

我有3列的表與主鍵一起:如何插入字符串列表到SQL Server數據庫的表

create table tempTable 
(
    id int primary key identity, 
    name nvarchar(50), 
    gender nvarchar(50), 
    city nvarchar(50) 
) 

而且有像這串名單:

List<String> list = new List<String>() { "name", "male", "city" }; 

我想將此列表放入tempTable。我怎樣才能做到這一點?

+1

你的問題是既不清楚也沒有顯示出努力。臨時表***真的是臨時表嗎?你使用原始的ADO.Net?你試過什麼了? –

+2

有很多方法可以做到這一點,你累了什麼?這裏是一個鏈接,向您展示了將數據插入到表中的一種方法http://stackoverflow.com/questions/14001040/inserting-new-row-in-sql-database-table以及每個循環對您的列表你可以完成它。還有更多的方法。 – Matt

+0

表的名字是temptable 我正在使用raw ado.net 這裏是我的代碼到目前爲止。但我知道,這沒有任何意義。 列表 list = new列表(){「A」,「B」,「C」}; string qry =「INSERT INTO tempTable VALUES(@Column)」; 使用(var cmd = new SqlCommand(qry,connection)) cmd.Parameters.Add(「@ Column」,SqlDbType.VarChar); (列表中的var值) cmd.Parameters [「@ Column」]。Value = value; cmd.ExecuteNonQuery(); } } –

回答

1

你應該做這樣的事情:

string query="INSERT INTO tempTable(name, gender, city) VALUES (@name, @gender, @city)"; 
using (var connection = new SqlConnection(connectionString)) 
{ 
    using (SqlCommand command = new SqlCommand()) 
    { 
     command.Connection = connection; 
     command.CommandString = query; 
     command.CommandType = CommandType.Text; 
     command.Parameters.AddWithValue("@name", list[0]); 
     command.Parameters.AddWithValue("@gender", list[1]); 
     command.Parameters.AddWithValue("@city", list[2]); 
     try 
     { 
      connection.Open(); 
      command.ExecuteNonQuery(); 
     } 
     catch (SqlException ex) 
     { 
      // your code... 
     } 
    } 
} 
+1

你應該看看[我們可以停止使用AddWithValue()已經?](http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already /)並停止使用'.AddWithValue()' - 它可能會導致意想不到的結果... –

+0

哇!我從來沒有與AddWithValue()的問題。但我認爲這是非常有趣的鏈接。謝謝 :) –

相關問題