Soooooooo ...我有一个SQL Server表,我需要从我导入的csv文件的内容进行更新。实质上,如果我有一个记录的键与单元格A的内容匹配,我将用单元格B的内容更新该记录的一个字段。从我在其他地方找到的一些片段看来,我似乎需要创建一个临时表格,做如下:从CSV文件更新SQL Server表?
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++;
}
}
}
}
}
}
但我很好难倒到哪儿何去何从......
任何意见/建议/指针将不胜感激!
感谢一如既往,
保罗
我不认为这是一种将数据插入到SQL服务器的真正高效的方法......如果您只需要将数据插入到CSV表中,您是否尝试过OPENROWSET?然后,您可以将逻辑放入SP并从代码运行。 – asemprini87
@ asemprini87不知道我是否正确理解你......我没有插入数据,只做了更新。 – PaulBinCT2
这听起来像一个表值参数将是最简单的解决方案。你可以用你需要的两列创建一个用户定义的表类型。然后你用这些值加载一个DataTable。最后但并非最不重要的是,您创建一个存储过程来接收这些数据并执行更新。从程序内部,您可以像处理任何其他表一样处理参数。 –