【问题标题】:Insert, Delete and Update Commands are not built by the Adapter插入、删除和更新命令不是由适配器构建的
【发布时间】:2012-05-04 23:39:07
【问题描述】:

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

为什么会这样,解决办法是什么?

【问题讨论】:

  • 你能用你在那里使用的一些代码示例来解释这个问题吗
  • 我通过可视数据适配器构建它。我的意思是我没有编写代码。但视觉工作室没有;没有创建插入命令。
  • 那么你遇到了什么错误,你现在想做什么?
  • 是否检查了数据库连接?
  • 您遇到的错误是什么

标签: c# sql database sqlcommand dataadapter


【解决方案1】:

要了解这一点,您应该了解 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); 
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    相关资源
    最近更新 更多