计数始终返回-1 SQL Server。ASP.NETC#
查询总是返回-1不知道为什么。请有人解释一下。count的值始终保持为-1计数始终返回-1 SQL Server。ASP.NETC#,c#,sql-server-2008,C#,Sql Server 2008,查询总是返回-1不知道为什么。请有人解释一下。count的值始终保持为-1 string query = "SELECT COUNT(*) AS Emails FROM users"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(query, connection); command.Parameters.
string query = "SELECT COUNT(*) AS Emails FROM users";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@email", email);
try
{
connection.Open();
count = command.ExecuteNonQuery();
if (count > 0)
return "Something Wrong1";
}
catch
{
return "Something Wrong2";
}
return count + "Every thing ok";
}
您不需要检索计数值。您不需要检索计数值。这是因为它不返回查询结果,只在SQL server上执行。返回值是受语句影响的行数,如果语句不影响任何行,则返回-1ExecuteNonQuery
(顾名思义)不用于返回查询结果,而是用于运行更改数据的语句(如INSERT、DELETE、UPDATE)。文件规定:
对于UPDATE、INSERT和DELETE语句,返回值为
受命令影响的行数。(……)适用于所有其他类型的
语句,返回值为-1。如果发生回滚,则返回
值也为-1
您可以使用:
count = (int)command.ExecuteScalar();
以获取您要查找的计数。在.中还有一个例子,因为它不返回查询结果,只在SQL server上执行。返回值是受语句影响的行数,如果语句不影响任何行,则返回-1ExecuteNonQuery
(顾名思义)不用于返回查询结果,而是用于运行更改数据的语句(如INSERT、DELETE、UPDATE)。文件规定:
对于UPDATE、INSERT和DELETE语句,返回值为
受命令影响的行数。(……)适用于所有其他类型的
语句,返回值为-1。如果发生回滚,则返回
值也为-1
您可以使用:
count = (int)command.ExecuteScalar();
以获取您要查找的计数。在.中还有一个例子,我认为您的意思可能是SQL语句:
SELECT COUNT(*) FROM users WHERE Email = @email
除此之外,您必须使用
ExecuteScalar
方法来检索计数。我认为您的意思可能是SQL语句:
SELECT COUNT(*) FROM users WHERE Email = @email
除此之外,您必须使用
ExecuteScalar
方法来检索计数。我不是C#专家,但是命令。ExecuteNonQuery()
似乎不正确。。。这毕竟是一个疑问 我不是C#专家,但那命令.ExecuteNonQuery()
似乎不对。。。这毕竟是一个疑问 From:对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受触发器影响的行数。对于所有其他类型的语句,返回值为-1。返回的不是count
的值-调用。ExecuteOnQuery
返回受SQL语句影响的行数-没有任何行会受到影响,因此返回-1。改为使用.ExecuteScalar()
返回查询返回的一行一列值。From:对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。当插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受触发器影响的行数。对于所有其他类型的语句,返回值为-1。返回的不是count
的值-调用。ExecuteOnQuery
返回受SQL语句影响的行数-没有任何行会受到影响,因此返回-1。使用.ExecuteScalar()
返回查询返回的一行一列值。非常感谢。问题解决了。谢谢大家的快速回复,非常感谢。问题解决了。谢谢大家的快速回复。