插件,删除和更新命令不是由适配器构建的

时间:2012-04-24 10:28:22

标签: c# sql database sqlcommand dataadapter

我已经将DataAdapter连接到.mdb文件,但insert,delete和update命令为null,我无法使用它们。

为什么会这样,解决方案是什么?

1 个答案:

答案 0 :(得分:0)

要了解这一点,您应该了解SqlCommand和SqlCommandBuilder之间的区别。

Command对象用于对数据库执行标量或非查询命令。您可以将命令对象CommandText属性设置为要运行的sql语句,然后使用它的ExecuteScalar或ExecuteNonQuery方法来运行它。

CommandBuilder对象用于根据您提供的Select statament自动为您创建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); 
    }
}