我有一个IList
有5个项目。我需要使用ado.net从列表中逐个插入这些循环到SQL Server表。我正在使用IReader(企业库)
我该怎么做?
答案 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();