0

使用 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);
        }

我得到的错误是“ Invalid column name 'BK177'”,BK177 是我第一行第一列的数据。

4

1 回答 1

1

所以基本上你有一个包含数据的 DataTable 并且你想在数据库中插入它的所有内容?

您没有说您使用的是哪个版本的 SQL Server,但如果您使用的是 2008,则有一个表值参数类型,您可以使用它来将整个表发送到一个过程。然后你可以在 proc 上阅读这个表并做任何你需要做的事情。

参考资料:http: //msdn.microsoft.com/en-us/library/bb510489.aspx

http://msdn.microsoft.com/en-us/library/bb675163.aspx

http://blog.sqlauthority.com/2008/08/31/sql-server-table-valued-parameters-in-sql-server-2008/

于 2012-04-04T12:23:50.967 回答