2

DataAdapter を使用して .mdb ファイルへの接続を構築しましたが、挿入、削除、および更新コマンドが null であり、使用できません。

なぜそうなのか、解決策は何ですか?

4

1 に答える 1

0

これを知るには、 SqlCommand と SqlCommandBuilder の違いを理解する必要があります。

Command オブジェクトは、データベースに対してスカラー コマンドまたは非クエリ コマンドを実行するために使用されます。コマンド オブジェクトの CommandText プロパティを実行する SQL ステートメントに設定し、その ExecuteScalar または ExecuteNonQuery メソッドを使用して実行します。

CommandBuilder オブジェクトは、指定した Select ステートメントに基づいて、Update、Delete、および Insert SQL ステートメントを自動的に作成するために使用されます。DataAdapter オブジェクトを宣言し、その SelectCommand.CommandText プロパティを Select SQL ステートメントに設定します。次に、CommandBuilder オブジェクトを宣言するときに、DataAdapter を CommandBuilder のコンストラクター パラメーターに含めます。DataAdapter を実行すると、他のステートメントが自動的に作成されます。

例:

//SqlDataAdapter の Update メソッドを使用してデータベースにレコードを保存します

using System.Data; 
using System.Data.SqlClient; 

class dd 
{ 
static void Main() 
{ 
        SqlConnection cn=new SqlConnection("server=.\SqlExpress;uid=sa;pwd=tiger;database=employeemaster"); 
        SqlDataAdapter da=new SqlDataAdapter("select no,name from employee",cn); 
        DataTable dt=new DataTable(); 
        da.Fill(dt); 

        //emp has 2 columns known as no and name. 

        //Initialize the SqlCommandBuilder. 
        SqlCommandBuilder cd=new SqlComandBuilder(da); 

        //create a DataRow 
        DataRow dr=dt.NewRow(); 
        dr["no"]=101; 
        dr["name"]="romil"; 
        //the row is temporarily saved 
        dt.Rows.Add(dr); 

        //save the Row permanently in database


           da.Update(dt); 
    }
}
于 2012-04-24T11:56:06.030 に答える