2013-01-23 158 views
1

我要救我的數據集到數據庫所做的修改,但我得到這個錯誤:的DataAdapter.SelectCommand屬性需要初始化

The DataAdapter.SelectCommand property needs to be initialized

這是我寫的代碼:

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 is a DataRow/dt is a DataTable/da is a SqlDataAdapter/cb is a SqlCommandBuilder/ds is a DataSet

但是,當我改變了這一行:da.InsertCommand = cb.GetInsertCommand()有:cb = New SqlCommandBuilder(da)它的工作。

那麼爲什麼我使用它的第一個代碼沒有奏效!

回答

0

要麼你做這樣的

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!") 

OR

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!") 
+0

有時候,我只是用'da.InsertCommand = cb.GetInsertCommand()'和它的作品,而不使用'SqlCommandBuilder CB =新SqlCommandBuilder(da)',但在這種情況下,它不起作用,我想知道爲什麼 –

+0

你可以顯示正如你提到的那樣工作的代碼。 – Kiran1016

+0

好的,我解決了我的問題 –