При работе с наборами данных в C# доступны различные методы заполнения набора данных списком данных. В этой статье мы рассмотрим десять различных подходов вместе с примерами кода, чтобы продемонстрировать, как эффективно выполнить эту задачу.
Метод 1: использование цикла for
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();
dataSet.Tables.Add(dataTable);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
foreach (var item in dataList)
{
DataRow row = dataTable.NewRow();
row["ColumnName"] = item;
dataTable.Rows.Add(row);
}
Метод 2: использование цикла ForEach
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();
dataSet.Tables.Add(dataTable);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
dataList.ForEach(item =>
{
DataRow row = dataTable.NewRow();
row["ColumnName"] = item;
dataTable.Rows.Add(row);
});
Метод 3: использование LINQ
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();
dataSet.Tables.Add(dataTable);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
var rows = dataList.Select(item =>
{
DataRow row = dataTable.NewRow();
row["ColumnName"] = item;
return row;
}).ToList();
rows.ForEach(row => dataTable.Rows.Add(row));
Метод 4. Использование адаптера данных
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();
dataSet.Tables.Add(dataTable);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
using (var adapter = new SqlDataAdapter())
{
adapter.Fill(dataTable);
}
foreach (var item in dataList)
{
DataRow row = dataTable.NewRow();
row["ColumnName"] = item;
dataTable.Rows.Add(row);
}
Метод 5: использование метода AddRange
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();
dataSet.Tables.Add(dataTable);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
var rows = dataList.Select(item =>
{
DataRow row = dataTable.NewRow();
row["ColumnName"] = item;
return row;
}).ToArray();
dataTable.Rows.AddRange(rows);
Метод 6: использование привязки данных
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();
dataSet.Tables.Add(dataTable);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
dataTable.Columns.Add("ColumnName", typeof(string));
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = dataList;
dataTable = bindingSource.DataSource as DataTable;
Метод 7: использование массового копирования
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable();
dataSet.Tables.Add(dataTable);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.DestinationTableName = "YourTableName";
var table = new DataTable();
table.Columns.Add("ColumnName", typeof(string));
dataList.ForEach(item => table.Rows.Add(item));
bulkCopy.WriteToServer(table);
}
}
Метод 8: использование Entity Framework
var dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
using (var dbContext = new YourDbContext())
{
foreach (var item in dataList)
{
dbContext.YourTableName.Add(new YourEntity { ColumnName = item });
}
dbContext.SaveChanges();
}
Метод 9: использование Dapper
var dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
connection.Execute("INSERT INTO YourTableName (ColumnName) VALUES (@ColumnName)",
dataList.Select(item => new { ColumnName = item }));
}
Метод 10: использование команды ADO.NET
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
using (var command = new SqlCommand())
{
command.Connection = connection;
command.CommandText = "INSERT INTO YourTableName (ColumnName) VALUES (@ColumnName)";
command.Parameters.Add("@ColumnName", SqlDbType.VarChar);
List<string> dataList = new List<string>() { "Data 1", "Data 2", "Data 3" };
foreach (var item in dataList)
{
command.Parameters["@ColumnName"].Value = item;
command.ExecuteNonQuery();
}
}
}
В этой статье мы рассмотрели десять различных методов заполнения набора данных списком на C#. Каждый метод обеспечивает уникальный подход к решению задачи, что позволяет вам выбрать тот, который лучше всего соответствует вашим требованиям. Используя эти методы, вы можете эффективно заполнять наборы данных данными из списков, что позволяет эффективно манипулировать данными в ваших приложениях C#.