【发布时间】:2013-06-28 23:31:48
【问题描述】:
以下代码将在我的数据库中插入一些值。它获取 6 个随机值,将这些东西放入一个数组中,然后将其插入到数据库中。
public void LottoTest(object sender, EventArgs e)
{
Dictionary<int, int> numbers = new Dictionary<int, int>();
Random generator = new Random();
while (numbers.Count < 6)
{
numbers[generator.Next(1, 49)] = 1;
}
string[] lotto = numbers.Keys.OrderBy(n => n).Select(s => s.ToString()).ToArray();
foreach (String _str in lotto)
{
Response.Write(_str);
Response.Write(",");
}
var connectionstring = "Server=C;Database=lotto;User Id=lottoadmin;Password=password;";
using (var con = new SqlConnection(connectionstring)) // Create connection with automatic disposal
{
con.Open();
using (var tran = con.BeginTransaction()) // Open a transaction
{
// Create command with parameters (DO NOT PUT VALUES IN LINE!!!!!)
string sql =
"insert into CustomerSelections(val1,val2,val3,val4,val5,val6) values (@val1,@val2,@val3,@val4,@val5,@val6)";
var cmd = new SqlCommand(sql, con);
cmd.Parameters.AddWithValue("val1", lotto[0]);
cmd.Parameters.AddWithValue("val2", lotto[1]);
cmd.Parameters.AddWithValue("val3", lotto[2]);
cmd.Parameters.AddWithValue("val4", lotto[3]);
cmd.Parameters.AddWithValue("val5", lotto[4]);
cmd.Parameters.AddWithValue("val6", lotto[5]);
cmd.Transaction = tran;
cmd.ExecuteNonQuery(); // Insert Record
tran.Commit(); // commit transaction
Response.Write("<br />");
Response.Write("<br />");
Response.Write("Ticket has been registered!");
}
}
}
循环并将 MASS 条目插入数据库的最佳方法是什么。比方说,通过 C# 记录 100,000 条记录?我希望能够通过我的方法生成随机数并利用我也有的插入..
【问题讨论】:
-
不能,因为它的不同价值我的朋友......
-
@PriceCheaperton 当然它是不同的.. 有一个非常快的批量插入但一遍又一遍地只插入相同的值会很奇怪。 SqlBulkCopy 只会读取 SqlDataReader,它不知道值是如何生成的。
-
@SimonBelanger 确实;我最近做了一些元编程工作,将通用枚举器(迭代器块)重新公开为
IDataReaders 专门设计(和测试)以定位SqlBulkCopy