2010-09-21 85 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();