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

C# SqlHelper.ExecuteDataTable 重載支援 params SqlParameter[] 可變參數

     編輯:程式設計綜合問答

錯誤原因

調用 ExecuteDataTable(sql, paramArray) 時編譯器找不到匹配的兩參數重載。

補全重載代碼

public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters) {
    using (var conn = new SqlConnection(connStr))
    using (var cmd = conn.CreateCommand()) {
        cmd.CommandText = sql;
        if (parameters != null && parameters.Length > 0) {
            cmd.Parameters.AddRange(parameters);
        }
        using (var adapter = new SqlDataAdapter(cmd)) {
            var dt = new DataTable();
            adapter.Fill(dt);
            return dt;
        }
    }
}

調用示例

// 無參數
var dt1 = SqlHelper.ExecuteDataTable("SELECT * FROM Users");

// 參數化
var dt2 = SqlHelper.ExecuteDataTable(
    "SELECT * FROM Users WHERE Role = @Role AND Status = @Status",
    new SqlParameter("@Role", "Admin"),
    new SqlParameter("@Status", 1)
);

// 從列表構建
var list = new List { ... };
var dt3 = SqlHelper.ExecuteDataTable(sql, list.ToArray());

擴展:支援 Dictionary 參數

public static DataTable ExecuteDataTable(string sql, Dictionary dict) {
    var params = dict.Select(kvp => new SqlParameter(kvp.Key, kvp.Value ?? DBNull.Value)).ToArray();
    return ExecuteDataTable(sql, params);
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved