当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand


string source = "Provider=Microsoft.JET.OLEDB.4.0;data source=../../data/zcgl.mdb";
string select="select * from zcgl";
OleDbConnection conn = new OleDbConnection(source);
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(select, conn);
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);//添加这句,生成SQL即可或者设置一下表的主键!
DataSet ds = new DataSet();
adapter.Fill(ds,"zcgl");
//dataGridView1.DataSource = ds.Tables["zcgl"];
DataTable dt = ds.Tables["zcgl"];
DataRow dr = dt.NewRow();
dr[0] = "1006";
dr[1] = "防火墙5500";
dr[2] = "ccc";
dr[3]="ddd";
dt.Rows.Add(dr);
dataGridView1.DataSource = dt.DefaultView;
adapter.Update(ds, "zcgl");
conn.Close();    DataAdapter 对象在数据发生变化的时候,并不能自动产生数据库系统所需要的 Transact-SQL 语句,如果不使用 CommandBuilder 而使用 Update 方法,这是不会成功的。而 CommandBuilder 对象能为单个表的数据改变自动产生 Transact-SQL 语句。

转载请注明 :IT樵客

此条目发表在 程序设计 分类目录,贴了 标签。将固定链接加入收藏夹。

关于 logger

2010年网络规划设计师证书寻挂靠!

当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand》有 1 条评论

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>