0

私はこれを正確に行っています(SqlDataAdapterを使用して行を挿入するを参照)が、.ADDメソッドを提供しません

これが私のコードです:

var sqlQuery = "select * from CT_DETIMP where 0 = 1";
SqlDataAdapter tableAdapter = new SqlDataAdapter(sqlQuery, myConnection);
DataSet dataSet = new DataSet();
tableAdapter.Fill(dataSet);

var impRow = dataSet.Tables["CT_DETIMP"].NewRow();
impRow["TRANSCD"] = tranCode;
impRow["MISC"] = misc;
impRow["ADDENDA"] = addenda;

dataSet.Tables["CT_DETIMP"].Add(impRow);  // THIS IS WHERE THE ERROR IS 

new SqlCommandBuilder(tableAdapter);
tableAdapter.Update(dataSet);

DataTable に ADD の参照が含まれていないというエラーが表示されます。これを別の方法で実行できれば幸いですが、特定のフィールドにデータを入力する必要があるため、table.Adapter.Insert を使用できません。


そこで、dataSet.Tables["CT_DETIMP"].Add(impRow); を変更しました。dataSet.Tables["CT_DETIMP"].Rows.Add(impRow); に そして今、この行で null エラーが発生しています: var impRow = dataSet.Tables["CT_DETIMP"].NewRow();


このコードは機能しました:

' SqlConnection myConnection = new SqlConnection(connectionString); myConnection.Open();

        var sqlQuery = "select * from CT_detimp where 0 = 1";
        SqlDataAdapter tableAdapter = new SqlDataAdapter(sqlQuery, myConnection);

        SqlCommandBuilder cb = new SqlCommandBuilder(tableAdapter);

        DataSet dataSet = new DataSet("CT_DETIMP");
        tableAdapter.Fill(dataSet,"CT_DETIMP");

        DataTable detailTable = dataSet.Tables["CT_DETIMP"];
        DataRow impRow = detailTable.NewRow();'
4

2 に答える 2

1

DataTable.Rowsコレクション に追加する必要があります

dataSet.Tables["CT_DETIMP"].Rows.Add(impRow);
于 2016-06-24T18:34:26.193 に答える
1

エラーのある行を次のように変更します。

dataSet.Tables["CT_DETIMP"].Rows.Add(impRow);
于 2016-06-24T18:31:54.073 に答える