我已经将DataAdapter连接到.mdb文件,但insert,delete和update命令为null,我无法使用它们。
为什么会这样,解决方案是什么?
答案 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);
}
}