在 C# 中将列表数据插入 mySQL 数据库的有效方法
本文关键字:数据库 mySQL 有效 方法 插入 数据 列表 | 更新日期: 2023-09-27 18:32:39
我有csv文件,我想将其转储到数据库中。 所以我对文件进行了循环,并在循环中为每一行创建了一个名为data的列表
StreamReader file = new StreamReader(itemChecked.ToString());//read the file
while ((line = file.ReadLine()) != null)
{
if (start_flag == true) // start processing the numbers, get the real data
{
List<string> data = new List<string>();
data.AddRange(line.Replace("'"", "").Split(',').AsEnumerable());
}
}
目前为止,一切都好。
现在我想将列表数据插入数据库。这个名单相当大。我不想像这样输入它们中的每一个:
insert into table1 (tablenames) values (a, b, c on and on)
如何循环列表并将数据插入数据库?
首先,您需要使用 MySQL 的 ADO.NET 驱动程序(连接器/NET)连接到数据库。
其次,您需要打开与数据库的连接,然后插入一些数据:
var connection = new MySqlConnection();
connection.ConnectionString =
"server=localhost;"
+ "database=DBNAME;"
+ "uid=USERNAME;"
+ "password=PASSWORD;";
connection.Open();
foreach(var datum in data)
{
var command = connection.CreateCommand();
command.CommandText =
"insert into table1 (tablenames)"
+ " values "
+ "(a, b, c on and on)";
var result = command.ExecuteReader();
}
我的例子是基于这篇文章的。这不是一个完美的解决方案,但它应该让你开始。您可能需要研究MySQL事务以将插入批处理到有效的分组中(取决于数据大小,一次可能为100-1000个)。
我会使用批量复制一次从csv文件导入所有数据。您可以在此处找到示例:
http://www.codeproject.com/Articles/30705/C-CSV-Import-Export
我希望这就是你要找的
问候