DataAdapter を使用して .mdb ファイルへの接続を構築しましたが、挿入、削除、および更新コマンドが null であり、使用できません。
なぜそうなのか、解決策は何ですか?
DataAdapter を使用して .mdb ファイルへの接続を構築しましたが、挿入、削除、および更新コマンドが null であり、使用できません。
なぜそうなのか、解決策は何ですか?
これを知るには、 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);
}
}