2009-06-05 14 views
1

私はちょうど選択クエリを使用して、データセットを入力しています。いくつかの変更を行い、私はこれを行うデータセットのこのエントリを削除したいSQLDataadapter with Delete

foreach (DataRow dr in dsDatadata.Tables[0].Rows) 
           { 
            dr.Delete(); 
           } 



           sdAdapter.Update(dsDatadata,"DataData"); 

しかし、それは動作していません。

注: - 私はこれを解決するためにどのようにコマンド

を削除するSQLを使用したくありませんか?

+0

詳細を教えてください...どうやって動かないのですか?例外はありますか? –

答えて

1

sdAdapterにはSQL削除コマンドのCommandが含まれていないためです。
CommandBuilderを使用してアダプタのINSERT、UPDATEおよびDELETEコマンドを自動生成することはできますが、単純なクエリ(単一テーブルの場合、結合しない場合)でのみ機能します。

foreach (DataRow dr in dsDatadata.Tables[0].Rows) { 
    dr.Delete(); 
} 
DataAdapter sdAdapter; 

DbCommandBuilder cb = new SqlCommandBuilder(sdAdapter); 
sdAdapter.Update(dsDatadata, "DataData"); 

注:私はSQLCommandBuilderを使用していますが、あなたが使用するもの(のOleDB ...)でそれを置き換える必要があり
クエリが複雑であれば...

の詳細はMSDN Documentationを参照してください。 、簡単なパスがない場合は、SQLを自分で記述する必要があります。