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

本文关键字:适配器 构建 命令 删除 更新 插入 | 更新日期: 2023-09-27 18:32:01

我已经与 DataAdapter 建立了与.mdb文件的连接,但插入、删除和更新命令为空,我无法使用它们。

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

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

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

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

CommandBuilder 对象用于根据您提供的"选择"统计信息自动为您创建"更新"、"删除"和"插入"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); 
    }
}