首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET 讀取資料庫 MAX() 聚合值:ExecuteScalar 最佳實踐

     編輯:程式設計綜合問答

場景

只需單一標量值(如 SELECT MAX(Id) FROM Table),不需 DataSet/DataReader 開銷。

ADO.NET 代碼

string sql = "SELECT MAX(Id) FROM MyTable";
using (SqlConnection conn = new SqlConnection(connStr)) {
    using (SqlCommand cmd = new SqlCommand(sql, conn)) {
        conn.Open();
        object result = cmd.ExecuteScalar(); // 回傳 object (可能為 DBNull.Value)
        int maxId = (result == DBNull.Value) ? 0 : Convert.ToInt32(result);
        Console.WriteLine("Max Id = " + maxId);
    }
}

關鍵點

  • ExecuteScalar 執行查詢並回傳**第一行第一列**的值,完美適配聚合函數。
  • 回傳型別為 object,**必須判斷 DBNull.Value** 再轉型,否則拋 InvalidCastException。
  • 參數化查詢防注入:cmd.Parameters.AddWithValue("@cond", val)。

Entity Framework Core 寫法

var maxId = await context.MyTable.MaxAsync(t => (int?)t.Id) ?? 0;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved