2012-04-24 72 views
2

我已經建立了與DataAdapter到.mdb文件的連接,但插入,刪除和更新命令爲空,我無法使用它們。插入,刪除和更新命令不是由適配器構建的

爲什麼它是這樣的,有什麼解決方案?

+1

你能用你用有 – las 2012-04-24 10:36:03

+0

我通過可視化數據生成它的一些代碼示例說明問題adapter.i的意思是我沒有寫代碼。但視覺工作室並沒有創建插入命令。 – Feri73 2012-04-24 10:38:17

+0

那麼你有什麼錯誤,你現在想做什麼? – Ste 2012-04-24 10:56:15

回答

0

要了解這一點,您應該瞭解SqlCommand和SqlCommandBuilder的區別。

Command對象用於對數據庫執行標量或非查詢命令。您可以將命令對象的CommandText屬性設置爲要運行的sql語句,然後使用它的ExecuteScalar或ExecuteNonQuery方法運行它。

CommandBuilder對象用於根據您提供的Select語句爲您自動創建Update,Delete和Insert SQL語句。你會聲明一個DataAdapter對象,將它的SelectCommand.CommandText屬性設置爲你的Select SQL語句。然後,當您聲明一個CommandBuilder對象時,您將數據適配器包含在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); 
    } 
} 
相關問題