迭代Ilist并插入表

时间:2010-09-21 02:23:54

标签: c# .net sql sql-server

我有一个IList有5个项目。我需要使用ado.net从列表中逐个插入这些循环到SQL Server表。我正在使用IReader(企业库)

我该怎么做?

2 个答案:

答案 0 :(得分:1)

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

使用LINQ To SQL

创建一个LINQ To 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的起点。

答案 1 :(得分: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();