我有一个庞大的表单,大约有110个字段列(单行)需要保存在数据库中。
使用ADO.NET将这么多列插入数据库的最佳方法是什么?
我认为我不应该使用这样的插入语句,因为由于字段数量的原因,查询会非常大。
conn.Open();
string insertString = @"
insert into Categories (CategoryName, Description)
values ('Miscellaneous', 'Whatever doesn''t fit elsewhere')";
SqlCommand cmd = new SqlCommand(insertString, conn);
cmd.ExecuteNonQuery();
我想将数据转储到临时文件中,然后将它们添加到数据表中,然后使用SqlBulkCopy将它们插入到数据库中。
有更好的方法吗?你会如何处理这种情况?
答案 0 :(得分:1)
我担心插入此列数没有好的快捷方式,但使用参数可能会节省一些调试时间。通过使用参数,您无需担心字符串和类型转换中的撇号等问题。这是一个示例:
public static void TryThis()
{
try
{
using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = "YourConnectionString";
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO Categories (CategoryName, Description) VALUES (@CategoryName, @Description)";
cmd.Parameters.AddWithValue("CategoryName", "Miscellaneous");
cmd.Parameters.AddWithValue("Description", "Whatever doesn't fit elsewhere");
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}