【发布时间】:2011-06-14 03:55:47
【问题描述】:
我正在尝试从 SQL Server 表中返回行数。 'net 上的多个来源显示以下是一种可行的方法,但它继续返回'0 行'。当我在管理工作室中使用该查询时,它可以正常工作并正确返回行数。我已经尝试使用简单的表名以及管理工作室倾向于喜欢的完全限定的表名。
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = sqlConnectionString;
cn.Open();
SqlCommand commandRowCount = new SqlCommand("SELECT COUNT(*) FROM [LBSExplorer].[dbo].[myTable]", cn);
countStart = System.Convert.ToInt32(commandRowCount.ExecuteScalar());
Console.WriteLine("Starting row count: " + countStart.ToString());
}
有什么可能导致它的建议吗?
【问题讨论】:
-
noprimarykey2是表还是视图?我问的原因是因为它可能是一个按当前用户过滤数据的视图。 -
command.CommandType = CommandType.Text
-
@hamlin11 - 不是
CommandType.Text默认值吗? -
@hamlin11 - 这很奇怪。我检查过,当您创建一个没有设置
CommandType的命令时,它已经设置了CommandType.Text。所以答案对我来说没有意义,我真的很想理解...... :) -
@Alex - 如果你在
SqlCommand上拆开CommandType的getter,你会发现有一个奇怪的特殊大小写,如果当前值为0,它会说谎并说它是Text/1(类似地,从组件/设计的角度来看,默认值列为1)。但实际内部值保留为 0。
标签: c# .net sql-server