C# 从datatable更新sql表
使用C#.net 4.0和visual studio 2010 我需要用代码中生成的表更新服务器上的表 我很难弄清楚我需要做什么 我需要更新还是需要使用和插入创建临时表?或者完全不同的东西C# 从datatable更新sql表,c#,sql,insert,sql-update,C#,Sql,Insert,Sql Update,使用C#.net 4.0和visual studio 2010 我需要用代码中生成的表更新服务器上的表 我很难弄清楚我需要做什么 我需要更新还是需要使用和插入创建临时表?或者完全不同的东西 public void SaveMyWorkI() { DataGridViewRowCollection coll = ParetoGrid.Rows; saveTable.Columns.Add("Part", typeof(string)); saveTable.Columns
public void SaveMyWorkI()
{
DataGridViewRowCollection coll = ParetoGrid.Rows;
saveTable.Columns.Add("Part", typeof(string));
saveTable.Columns.Add("Pareto", typeof(string));
foreach (DataGridViewRow item in coll)
{
saveTable.Rows.Add(item.Cells[2].Value, item.Cells[5].Value);
//saveTable.Rows.Add(item.Cells[5].Value);
}
MyErrorGrid.DataSource = saveTable;
//SqlCommand pgINSERT = new SqlCommand("INSERT or UPDATE", conn);
}
更新将在部件上进行内部联接
正如你所看到的,我刚刚做了这件事,现在我的脑子一片空白。不仅如此,这也是小程序的最后一个主要部分
以下是我目前掌握的情况:
foreach (DataGridViewRow item in coll)
{
saveTable.Rows.Add(item.Cells[2].Value, item.Cells[5].Value);
part = item.Cells[2].Value.ToString();
pareto = item.Cells[5].Value.ToString();
SqlCommand pgINSERT = new SqlCommand("UPDATE dbo.OldParetoAnalysis SET part = " + part + " , pareto = " + pareto + "", conn);
pgINSERT.ExecuteReader();
//saveTable.Rows.Add(item.Cells[5].Value);
}
我得到的错误是“
无效的列名'BK177'
”,BK177是我第一行第一列的数据。所以基本上你有一个包含数据的数据表,你想在数据库中插入它的所有内容吗
您没有说明您使用的是哪个版本的SQL Server,但如果您使用的是2008,则可以使用一种表值参数类型将整个表发送到过程中。然后,您可以在proc上阅读此表,并对其执行任何需要执行的操作
参考资料:
我从链接中看到的只是插入查询,你不认为你可以提供exmaple吗?但这是程序的内部内容。一旦你有了桌子,你可以用它做任何你想做的事情。您可以在行中循环并执行更新语句,例如great answer@Diego。此链接显示如何创建表类型,以及如何创建存储过程以接受表类型作为参数。此链接向您展示如何在.net代码中创建SqlParameter,并将DataTable作为参数传递。