我想使用C#将CSV文件中的数据复制到SQL SERVER
本文关键字:数据 复制 SERVER SQL 文件 CSV | 更新日期: 2023-09-27 17:58:35
我正在尝试一些新的东西,即使用C#进行独立应用程序开发。我想将CSV文件中的数据复制到SQL Server数据库中,但对其他人来说似乎是这样。我已经讨论这个问题一整天了。请有人帮我。
StreamReader sr = new StreamReader(@filePath);
string line = sr.ReadLine();
string[] value = line.Split(',');
DataTable dt = new DataTable();
DataRow row;
foreach (string dc in value)
{
dt.Columns.Add(new DataColumn(dc));
}
while (!sr.EndOfStream)
{
value = sr.ReadLine().Split(',');
if (value.Length == dt.Columns.Count)
{
row = dt.NewRow();
row.ItemArray = value;
dt.Rows.Add(row);
}
}
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
{
conn.Open();
bulkCopy.DestinationTableName = "receipts";
foreach (var column in dt.Columns)
{
bulkCopy.ColumnMappings.Add(column.ToString(), column.ToString());
//MessageBox.Show(column.ToString());
}
bulkCopy.WriteToServer(dt);
bulkCopy.Close();
conn.Close();
}
请问我的代码有什么问题?
我终于解决了问题,一切都很完美!很抱歉迟发了答案。我所做的是使用for循环从数据表中读取数据并将其插入数据库。
这是代码;
StreamReader sr = new StreamReader(@filePath);
string line = sr.ReadLine();
string[] value = line.Split(',');
DataTable dt = new DataTable();
DataRow row;
foreach (string dc in value)
{
dt.Columns.Add(new DataColumn(dc));
}
while (!sr.EndOfStream)
{
value = sr.ReadLine().Split(',');
if (value.Length == dt.Columns.Count)
{
row = dt.NewRow();
row.ItemArray = value;
dt.Rows.Add(row);
}
}
dgv.DataSource = dt;
conn.Open();
for (int i = 0; i < dt.Rows.Count; i++)
{
SqlCommand command = new SqlCommand("INSERT INTO [receipts] ([fullname], [state], [regno], [dept], [year], [session], [amount], [date], [faculty], [bank], [jamb]) VALUES('" + dt.Rows[i][1].ToString() + "', '" + dt.Rows[i][2].ToString() + "', '" + dt.Rows[i][3].ToString() + "', '" + dt.Rows[i][5].ToString() + "', '" + dt.Rows[i][6].ToString() + "', '" + dt.Rows[i][7].ToString() + "', '" + dt.Rows[i][8].ToString() + "', '" + dt.Rows[i][9].ToString() + "', '" + dt.Rows[i][10].ToString() + "', '" + dt.Rows[i][11].ToString() + "', '" + dt.Rows[i][4].ToString() + "')", conn);
command.ExecuteNonQuery();
}
conn.Close();