CSV 导入SQL Server 中

/// <summary>
/// 打开CSV并显示数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button_Click(object sender, EventArgs e)
{
  OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
  OpenFileDialog1.Filter = "CSV|*.CSV";
  if (OpenFileDialog1.ShowDialog() == DialogResult.Cancel)
  {
    return;
  }
  else
  {
    this.dgvShow.DataSource = null;
    string fileName = OpenFileDialog1.FileName;
    dtcsv=OpenCSV(fileName);
    this.dgvShow.DataSource =dtcsv ;
    MessageBox.Show("成功显示CSV数据!");
  }
}

1:写入SQL  方法1

/// <summary>
/// 写入数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
  string ConStr = "链接数据库";

  using (SqlBulkCopy sqlRevdBulkCopy = new SqlBulkCopy(ConStr))
  {
    sqlRevdBulkCopy.DestinationTableName = "csv_DataTable";//数据库中对应的表名

    sqlRevdBulkCopy.NotifyAfter = dtcsv.Rows.Count;//有几行数据
    sqlRevdBulkCopy.WriteToServer(dtcsv.Select(""));//数据导入数据库
    sqlRevdBulkCopy.Close();//关闭连接
  }
}

2:写入SQL数据库方法2

string ConStr = "Data Source=KY6XMUWY833KV6M;Initial Catalog=CSVSQL;Integrated Security=True";

try
{
  using (SqlConnection con = new SqlConnection(ConStr))
{
con.Open();
using (SqlTransaction stran = con.BeginTransaction())
{
  StringBuilder sql = new StringBuilder();
  sql.Append("insert into csv_DataTable(A001,A000,A200,A102,A100,STATUS) values");
  sql.Append("(@A001,@A000,@A200,@A102,@A100,@STATUS)");
  foreach (DataRow dr in dtcsv.Rows)
  {
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandText = sql.ToString();
    cmd.Transaction = stran;
    cmd.Parameters.Add("@A001", SqlDbType.NVarChar, 2000).Value = dr["A001"];
    cmd.Parameters.Add("@A000", SqlDbType.NVarChar, 2000).Value = dr["A000"];
    cmd.Parameters.Add("@A200", SqlDbType.NVarChar, 2000).Value = dr["A200"];
    cmd.Parameters.Add("@A102", SqlDbType.NVarChar, 2000).Value = dr["A102"];
    cmd.Parameters.Add("@A100", SqlDbType.NVarChar, 2000).Value = dr["A100"];
    cmd.Parameters.Add("@STATUS", SqlDbType.NVarChar, 2000).Value = dr["STATUS"];
    cmd.ExecuteNonQuery();
    }
    stran.Commit();
  }
}

原文地址:https://www.cnblogs.com/liuruipeng/p/7593315.html