日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

用ADO.NET的ExecuteScalar方法返回单一值-资讯动态

發布時間:2023/12/4 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用ADO.NET的ExecuteScalar方法返回单一值-资讯动态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[轉]http://www.bitscn.com/pdb/dotnet/200807/147205.html

若您程序中執行的 SQL statement 或 Stored Procedure,只是要返回計算過的「單一值」,例如:

??????? SELECT Count(*) FROM 員工數據表

??????? 或只會回傳符合條件的「第一筆」record 的「第一個」column 其值,例如:

??????? SELECT 電子信箱 FROM 員工數據表 WHERE 姓名= 'David'

??????? 我們即可用 Command 對象的 ExecuteScalar 方法 (ADO.NET 1.x 即支援。DbCommand 對象則要 .NET 2.0 才支持),以回傳數據集中第一個 row 的第一個 column 其存儲值,并忽略其它無用的數據;此種做法比起用ExecuteReader 方法回傳「多組」record,再指定給 DataReader 對象,再逐一比對數據,可更有效地節省系統資源并提升「性能 (performance)」。

??????? 但由于 ExecuteScalar 方法回傳的必為 Object 類型,因此必須由程序員,手動將其強制轉型為 .NET 的 int 或 string 等想要的類型,以便直接指派給 int 或 string 類型的變量,或顯示在頁面上的控件中,如下所示:

??????? string theMail = (string)cmd.ExecuteScalar();

??????? 因此使用 ExecuteScalar 方法時,在程序中必須先確定,承接回傳值的變量其類型為何,否則會發生轉型錯誤。此外,在上例中,若「員工數據表」內有超過一個以上叫做「David」的員工,則 ExecuteScalar 方法只會回傳「第一個」叫做 David 的員工其電子信箱,而忽略其它亦符合條件的數據。

??????? 此外,ExecuteScalar 方法不只可以用在數據庫的 SELECT 作業,亦可用于 INSERT 作業。假設我們想要在 INSERT 一筆 record 至數據庫后,馬上取得剛才新增那一筆 record 的 Identity (自動增號) 的值,可用下列 SQL statement 達成:

??????? string strSql = "INSERT INTO 數據表 (name, age) VALUES ('David', 20); Select @@Identity";

??????? 此時,我們即可用 ExecuteScalar 方法,取代 ExecuteNonQuery 方法,去執行上述這一段 SQL statement,以便返回一筆計算過的「單一值」,亦即最新的 Identity 流水號碼,關鍵 ADO.NET 代碼如下:???????? SqlConnection conn = new SqlConnection(strConnString);
??????? SqlCommand cmd = new SqlCommand(strSqlStr, conn);
??????? try
??????? {
??????????? conn.Open();
??????????? if (conn.State == ConnectionState.Open)
??????????? {
??????????????? // 返回最新的 Identity 流水號碼
??????????????? intNewestSerialNum = Convert.ToInt32(cmd.ExecuteScalar());
??????????? }
??????? }
??????? catch (SqlException ex)
??????? {}
?

?

文章轉載自網管之家:http://www.bitscn.com/pdb/dotnet/200807/147205.html

?

轉載于:https://www.cnblogs.com/futao/archive/2010/12/22/1914043.html

總結

以上是生活随笔為你收集整理的用ADO.NET的ExecuteScalar方法返回单一值-资讯动态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。