Ado.net 需要初始化DataAdapter.SelectCommand属性

Ado.net 需要初始化DataAdapter.SelectCommand属性,ado.net,Ado.net,我想将对数据集所做的修改保存到数据库中,但出现以下错误: 需要初始化DataAdapter.SelectCommand属性 这是我写的代码: dr = dt.NewRow dr(0) = t1.Text dr(1) = t2.Text dr(2) = t3.Text dr(3) = d1.Value dt.Rows.Add(dr) da.InsertCommand = cb.GetInsertCommand() da.Update(ds, "stagiaire") MsgBox("ajou

我想将对数据集所做的修改保存到数据库中,但出现以下错误:

需要初始化DataAdapter.SelectCommand属性

这是我写的代码:

dr = dt.NewRow

dr(0) = t1.Text
dr(1) = t2.Text
dr(2) = t3.Text
dr(3) = d1.Value

dt.Rows.Add(dr)

da.InsertCommand = cb.GetInsertCommand()
da.Update(ds, "stagiaire")
MsgBox("ajout effectu!")
dr是DataRow/dt是DataTable/da是SqlDataAdapter/cb是SqlCommandBuilder/ds是DataSet

但是当我将这一行更改为:
da.InsertCommand=cb.GetInsertCommand()
with:
cb=New-SqlCommandBuilder(da)
时,它工作了


那为什么我用的第一个代码不起作用呢

要么你就这样做

 dr = dt.NewRow

 dr(0) = t1.Text
 dr(1) = t2.Text
 dr(2) = t3.Text
 dr(3) = d1.Value

 dt.Rows.Add(dr)
 SqlComand cmd=new SqlCommand("insert query",conn)
 da.InsertCommand = cmd
 da.Update(ds, "stagiaire")
 MsgBox("ajout effectu!")


有时我只是使用
da.InsertCommand=cb.GetInsertCommand()
,它可以在不使用
SqlCommandBuilder cb=new SqlCommandBuilder(da)
的情况下工作,但在这种情况下它不工作,我想知道为什么
 dr = dt.NewRow

 dr(0) = t1.Text
 dr(1) = t2.Text
 dr(2) = t3.Text
 dr(3) = d1.Value

 dt.Rows.Add(dr)
 SqlCommandBuilder cb=new SqlCommandBuilder (da)
 da.InsertCommand = cb.GetInsertCommand()
 da.Update(ds, "stagiaire")
 MsgBox("ajout effectu!")