SqlDataAdapter 用法詳解


SqlCommand是sql命令,執行后通過sqlDataAdapter返回填入DataSet
SqlDataAdapter 有不同的構造函數,
SqlDataAdapter(SqlCommand);
SqlDataAdapter(string,SqlConnection);

SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=new SqlCommand();
da.SelectCommand.CommandText=strSql;
da.SelectCommand.CommandTimeout=60;
da.SelectCommand.Connection=myConn;
da.SelectCommand.Transaction=myTrans;
myDataSet=new DataSet();
da.Fill(myDataSet,TableName);


SqlCommand myCmd=new SqlCommand(strSql,myConn);
myCmd.CommandType=CommandType.Text;
myCmd.CommandTimeout=60;
myCmd.Transaction=myTrans;
intAffectedRows=myCmd.ExecuteNonQuery();

其中myConn是連接對象,myTrans是事務對象,strSql是SQL語句,
第一個例子通常是執行有返回數據集的查詢如SELECT語句
第二個例子通常是執行INSERT、UPDATE、DELETE語句。


在ADO.NET的DataAdapter其實是由很多個Command組成的。如SelectCommand,DeleteCommand,InsertCommand,UpdateCommand。
每一個Command都是一個獨立的Command對象。也就是都有自己的Connection和CommandText。
DataAdapter的所有工作都會落實到一個Command上,比如查詢就用SelectCommand。如果SelectCommand沒有配置好,就不能執行這個工作。
相應的,如果要執行Update方法,就必須配置好UpdateCommand。而我們通常的定義中(如:OleDbDataAdapter da=new OleDbDataAdapter( "Select * From Authors ",conn);)都只是配置了SelectCommand,所以這時DataAdapter只能執行查詢工作,而不能執行Update。
要讓DataAdapter執行Update,當然就必須配置好UpdateCommand。但是這個Command的CommandText相當復雜(如果有N個字段的話,就有2*N+1個參數),如果要我們手工去配置,那簡直就是不可能的。所以.NET為我們提供那一個自動配置其Command的工具CommandBuilder。用這個Class,我們就能把DataAdapter的所有Command配置好,從而使它能執行這些操作。
CommandBuilder也有兩種:OleDbCommandBuilder和SqlCommandBuilder。分別對應OleDb和SQL Server。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM