2010-09-21 84 views
0

我有一個IList 5項。我需要使用ado.net將這些循環從列表中逐一循環到SQL Server表。我正在使用IReader(企業庫)迭代Ilist並插入表

我該怎麼做?

+2

你能給喜歡你是如何連接到數據庫的一些細節?你正在使用ADO或Linq或其他東西? – JPReddy 2010-09-21 02:32:48

+0

爲什麼你需要循環? – 2010-09-21 02:40:41

+0

我正在使用ado.net,企業庫IReader – SRA 2010-09-21 02:41:52

回答

1

考慮您的列表:IList<Customer> foo;

使用LINQ to SQL

創建LINQ到SQL的DataContext,它是這樣的:

using (var db = new CustomerDataContext()) 
{ 
    db.Customer.InsertAllOnSubmit(foo); 
    db.SubmitChanges(); 
} 

使用存儲過程

using (var conn = new SqlConnection()) 
{   
    using (var cmd = new SqlCommand(conn)) 
    { 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.CommandText = "InsertCustomer"; 

     foreach (Customer c in foo) 
     { 
      cmd.Parameters.Clear(); 
      cmd.Parameters.Add(new SqlParameter("@CustomerName", c.Name); 

      conn.Open(dbConnString); 
      cmd.ExecuteNonQuery(); 
      conn.Close(); 
     } 
    } 
} 

這段代碼可能不是複製/粘貼就緒,也許是某處的語法/名稱/屬性問題,但它絕對是使用ADO.NET的一個起點。

0

如果您正在使用,那麼你可以如下做到基本的SqlConnection類:

IList<Record> records = new List<Record>(); 

    SqlConnection connection = new SqlConnection("Give connection string here"); 

    connection.Open(); 
    var insertCommand = connection.CreateCommand(); 

    foreach (var record in records) 
    { 
    insertCommand.CommandText = string.Format("Insert into table1 (field1, field2) values ({0}, {2})", record.field1, 
               record.field2); 
    insertCommand.ExecuteScalar(); 
    } 

    connection.Close();