Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从datatable更新sql表_C#_Sql_Insert_Sql Update - Fatal编程技术网

C# 从datatable更新sql表

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

使用C#.net 4.0和visual studio 2010

我需要用代码中生成的表更新服务器上的表

我很难弄清楚我需要做什么

我需要更新还是需要使用和插入创建临时表?或者完全不同的东西

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作为参数传递。