You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL COUNT查询返回的记录数赋值给C#变量

操作步骤

  • 首先修正你现有代码的变量定义错误:int: CountValue; 要修改为 int CountValue;
  • 将构造好的SQL查询字符串赋值给command对象的CommandText属性
  • 调用command对象的ExecuteScalar()方法执行查询,该方法会直接返回查询结果第一行第一列的值,正好匹配你返回单个计数的需求
  • 将返回的object类型结果转换为int类型后赋值给CountValue变量
  • 完成查询后及时关闭数据库连接,避免资源占用

完整可用代码参考

int CountValue;
cnn.ConnectionString = CnnStr;
cnn.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = cnn;
string query = "SELECT Count(c.Cell_ID) AS CountOfCell_ID FROM Cells AS c HAVING(((Exists(SELECT 1 FROM ΠΑΡΟΝΤΕΣ as cu WHERE c.Cell_ID = cu.CellID)) = False));";
// 核心赋值逻辑
command.CommandText = query;
CountValue = (int)command.ExecuteScalar();
// 结束
cnn.Close();

稳妥兼容方案:如果要避免极端场景下的空值转换报错,可以调整转换逻辑如下:

CountValue = (int)(command.ExecuteScalar() ?? 0);

更规范的资源管理写法

推荐把连接和Command对象包在using代码块中,会自动完成资源释放,不需要手动调用Close:

int CountValue;
string query = "SELECT Count(c.Cell_ID) AS CountOfCell_ID FROM Cells AS c HAVING(((Exists(SELECT 1 FROM ΠΑΡΟΝΤΕΣ as cu WHERE c.Cell_ID = cu.CellID)) = False));";
using (OleDbConnection cnn = new OleDbConnection(CnnStr))
using (OleDbCommand command = new OleDbCommand(query, cnn))
{
    cnn.Open();
    CountValue = (int)(command.ExecuteScalar() ?? 0);
}

内容的提问来源于stack exchange,提问作者ΝΙΚΟΣ ΠΑΠΑΣΤΕΦΑΝΟΥ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:42:01