您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么淺析ADO.NET的相關知識,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
ADO.NET在處理數據時,可分為連接式與斷開式
ADO.NET涉及到的主要對象:
連接對象:Connection
命令對象:Command
數據讀取器對象:DataReader
數據適配器對象:DataAdapter
數據集對象: DataSet
下面是一個簡單的ADO.NET連接式訪問數據庫的代碼
private static void ReadOrderData(string connectionString) { string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; //此處使用using來自動釋放connection using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); // SqlDataReader 的默認位置在***條記錄前面。因此,必須調用 Read 來開始訪問任何數據 while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); } // 關閉reader reader.Close(); //對于SqlConnection的MARS模式關閉的情況下,一次只能打開一個 SqlDataReader,在***個關閉之前,打開另一個的任何嘗試都將失敗。另外,在reader不關閉之前,相同的command.ExecuteReader();將會失敗(無論是否為MARS) } }
接下來對上面這段代碼做一些說明:
代碼:
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
使用了reader的索引器,
索引器調用所的方法如下:
override public object this[int i] { get { return GetValue(i); } } override public object this[string name] { get { return GetValue(GetOrdinal(name)); } }
(二)關于command的一些方法的說明
ExecuteNonQuery 對連接執行 Transact-SQL 語句并返回受影響的行數。 (重寫 DbCommand..::.ExecuteNonQuery()()()。)
ExecuteReader 已重載。 將 CommandText 發送到 Connection 并生成一個 SqlDataReader。
ExecuteScalar 執行查詢,并返回查詢所返回的結果集中***行的***列。忽略其他列或行。 (重寫
DbCommand..::.ExecuteScalar()()()。)
ExecuteXmlReader 將 CommandText 發送到 Connection 并生成一個 XmlReader 對象。
(三)關于connectionstring
以下是常用的幾種connectionstring
//基本 string baseconnstr="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword"; //MARS string marsconnstr="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;" +"MultipleActiveResultSets=true" //在app_data文件夾中的sqlexpress.mdf string mdfDataDir="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;" //使用SQL集群故障轉移 string mirrorconnstr="Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;" //異步 string asynconnstr="Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;"
MARS中,其實ADO.NET是對未關閉的sqlcommand掛起.所以datareader只能使用其各自的command實例.
上述內容就是怎么淺析ADO.NET的相關知識,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。