asp.net 資料庫查詢方法總結 摘

來源:互聯網
上載者:User

"ado.net 2.0 技術內幕

執行返回行的查詢

使用到的類和方法: SqlConnection, SqlCommand, ExecuteReader, SqlDataReader

ExecuteReader方法返回一個SqlDataReader對象, SqlDataReader對象查看結果中的一行資料, 並且是單向的

例子:

 

string strConn, strSQL;

strConn = @"Data Source=.\SQLExpress;" + "Initial Catalog=Northwind;Trusted_Connection=Yes;";

strSQL = "SELECT OrderID, CustomerID, OrderDate" +            "FROM Orders WHERE Shipcountry = 'Canada'";


SqlConnection cn = new SqlConnection(strConn);

cn.Open();



SqlCommand cmd = new SqlCommand(strSQL, cn);

SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())

Console.WriteLine("{0} {1} {2:d}", rdr["OrderID"], rdr"CustomerID"], rdr["OrderDate"]);



rdr.Clode();

擷取單一值

使用到的類和方法: SqlConnection, SqlCommand, ExecuteScalar

ExecuteScalar方法不是返回一個SqlDataReader, 而是返回在一般Object資料類型中第一行第一列的值。在希望返回單一值的時候, 可以使用這個文法甜頭, 雖然它也建立了SqlDataReader, 並擷取期望值, 但不去要編寫全部代碼

例子:

 

string strConn, strSQL;

strConn = @"Data Source=.\SQLExpress;" + "Initial Catalog = Northwing;Trusted_Connection=Yes;";

strSQL = "SELECT SUM(UnitPrice * Quantity) " + 
       "FROM Orders INNER JOIN [Order Details]" +

      "ON Orders.OrderID = [Order Details].OrderID" +

      "WHERE CustomerID -'ALFKI'";

sqlConnertion cn = new SqlConnection(strConn);

cn.Open();

SqlCommand cmd = new SqlCommand(strSQL, cn);



decimal decOrderTotal = (decimal)cmd.ExecuteScalar();

Console.WriteLine("Order Total: {0:c}", decOrderTotal);

decimal是SQL Server的浮點數類型格式, ":c"是使用系統的貨幣格式格式化輸出

 

執行不返回結果集的查詢(資料更新修改)

使用到的類和方法: SqlConnection, SqlCommand, ExecuteNonQuery

可以通過調用SqlCommand的ExecuteReader方法來執行這些查詢。但是因為這些查詢不返回任何行, 所以似乎是一些不必要的開銷。幸運的是, 還有更簡單的方法, SqlCommand類公開了ExecuteNonQuery方法, 該方法執行查詢而不返回SqlDataReader對象

例子:

 

string strConn, strSQL;

strConn = @"Data Source=.\SQLExpress;" + "Initial Catalog=Northwind;Trusted_Connection=Yes;";

strSQL = "UPDATE Customers SET CompanyName = 'NewValue' " +

      "WHERE CustomerID = 'ALFKI'";

SqlConnection cn = new SqlConnection(strConn);

cn.Open();



SqlCommand cmd = new SqlCommand(strSQL, cn);

if (cmd.ExecuteNonQuery())

Console.WriteLine ("Update succeede");

else

Console.WriteLine("Update failed");

 

對於 UPDATE、INSERT 和 DELETE 語句,傳回值為該命令所影響的行數。對於所有其他類型的語句,傳回值為 -1。如果發生復原,傳回值也為 -1

 

//執行大量操作查詢

 

//執行擷取XML資料的查詢

 

//在事務中執行查詢

 

//非同步執行查詢


"

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.