问题

在我的C#代码中,我正在尝试打开SQL Server数据库的连接并获取计数.我从我写的另一个工作正常的应用程序复制了代码(禁止查询本身).我运行了查询 – 我构建的版本和代码构造的查询(我使用变量) – 它们都工作正常,返回相同的计数.我只是没有收到任何东西.

我已经放置了断点并检查了我的连接和查询,这是我期望的.当我用Google搜索这个时,我只是得到了有完全不同问题的人的结果,所以我很难过.我不知道为什么我没有收到任何东西.错误在哪里?

 SqlConnection RRconnection = new SqlConnection();
RRconnection.ConnectionString = "Data Source=;Initial Catalog=;User id=;Password=";

RRconnection.Open();
string ridQuery = "SELECT COUNT (t.RxTimeStamp) FROM...";

SqlCommand query = new SqlCommand(ridQuery, RRconnection);

SqlDataReader data = query.ExecuteReader();

if (data.Read())
    transcount = Convert.ToInt32(data.GetValue(0));
 

如果上段不清楚,我期待查询返回1592064的计数(对于我正在测试的特定实例),而data中没有数据.

可能没有关联,但我的查询包括三个内部连接.这是我第一次做这么多,所以也许这可能是问题?除非这导致问题,当我运行查询时它不起作用?

  最佳答案

您是否尝试使用 SqlCommand.ExecuteScalar Method

 SqlCommand query = new SqlCommand(ridQuery, RRconnection);
Int32 transcount = (Int32) query.ExecuteScalar();
 

更新

我不确定为什么你的查询不起作用,也许尝试给计数列一个别名:

 string ridQuery = "SELECT COUNT (t.RxTimeStamp) AS RxCount FROM ...";
 

  相同标签的其他问题

c#sql