从CSV文件更新SQL Server表?

时间:2017-03-03 21:11:04

标签: asp.net sql-server csv

Soooooooo ...我有一个SQL Server表,我需要从我导入的csv文件的内容更新。基本上如果我有一个记录,其密钥与Cell A的内容相匹配,我将用Cell B的内容更新该记录的一个字段。从我在其他地方找到的一些片段,似乎我需要创建一个临时表,我有完成如下:

     protected void UploadBtn_Click(object sender, EventArgs e)
        {
            string csvPath = Server.MapPath("~/Uploads/") + Path.GetFileName(RadAsyncUpload1.UploadedFiles[0].FileName);
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Customer Ref", typeof(string)),
            new DataColumn("Inventory #", typeof(string)),
           });


            string csvData = File.ReadAllText(csvPath);
            foreach (string row in csvData.Split('\n'))
            {
                if (!string.IsNullOrEmpty(row))
                {
                    dt.Rows.Add();
                    int i = 0;
                    foreach (string cell in row.Split(','))
                    {
                        dt.Rows[dt.Rows.Count - 1][i] = cell;
                        i++;
                    }
                }
            }
        }



    }
}

但我很沮丧地知道从哪里开始......

非常感谢任何建议/建议/指示!

一如既往地谢谢,

1 个答案:

答案 0 :(得分:0)

因此,在您的示例代码中,您已使用CSV文件的内容在(您的程序中,而不是SQL Server中)内存中创建了DataTable。这并没有为你的目标带来任何好处。

您需要将数据上传到SQL Server中的临时表,然后执行UPDATE语句将临时表加入实时数据。

在此过程中,您将需要连接到SQL服务器,并执行命令以创建临时表,在循环中执行命令以将记录上载到该临时表,使用update语句执行命令,最后删除临时表的命令。