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 は、1 行 1 列目のデータです。

4

1 に答える 1

1

基本的に、データを含むDataTableがあり、そのすべてのコンテンツをDBに挿入したいですか?

使用している 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 に答える