我已经建立了一个与.mdb文件的数据适配器的连接,但是insert、delete和update命令是空的,我不能使用它们。
为什么会这样?解决办法是什么?

最佳答案

要了解这一点,您应该了解sqlcommand和sqlcommandbuilder之间的区别。
command对象用于对数据库执行标量或非查询命令。您可以将command objects commandText属性设置为和要运行的sql语句,然后使用它的executeScalar或executeNonQuery方法运行它。
commandbuilder对象用于根据您提供的select statement自动创建update、delete和insert sql语句。您可以声明一个dataadapter对象,将其selectcommand.commandText属性设置为select sql语句。然后,当您声明commandbuilder对象时,您将在commandbuilder的构造函数参数中包含dataadapter,当您运行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);
    }
}

10-04 15:11