如何知道Sql Server中的表中是否没有值

时间:2011-08-23 12:23:43

标签: c# asp.net sql-server

我有一张表说emp,因为我没有任何价值观。如果我使用此查询 asp.net编码中的“select * from emp”如下所示:

con.Open();
String str="select * from emp where empname="Abdul";
cmd=new SqlCommand(str,con);
SqlDataReader dr=new SqlDataReader();
while(dr.Read())
{
  textBox1.text=dr[0].ToString();
  textBox2.text=dr[0].ToString();
  textBox3.text=dr[0].ToString();
}
con.Close();

在emp表中,我没有任何empname作为abdul,当我这样做时它应该显示一些错误,怎么做?

5 个答案:

答案 0 :(得分:3)

为什么不这样做:

select count(*) from emp

并查看您是否获得超过0条记录?

答案 1 :(得分:2)

假设您正在使用存储过程,请查看@@ROWCOUNT

否则,您必须向我们提供更多信息。你想在哪里显示这个错误?


对于那些不能链接的人,它提供了一个使用@@ ROWCOUNT来检查UPDATE语句是否有效的示例。

USE AdventureWorks2008R2;
GO
UPDATE HumanResources.Employee 
SET JobTitle = N'Executive'
WHERE NationalIDNumber = 123456789
IF @@ROWCOUNT = 0
PRINT 'Warning: No rows were updated';
GO

答案 2 :(得分:2)

如果查询没有行的表,它将只返回0行。它不会返回错误。

答案 3 :(得分:2)

也许您的问题是您的代码错误,因为您没有在您创建的命令上执行DataReader。见下文:

con.Open();
String str="select * from emp where empname="Abdul";
cmd=new SqlCommand(str,con);
SqlDataReader dr=new SqlDataReader(); //WRONG. See my version below
while(dr.Read())
{
  textBox1.text=dr[0].ToString();
  textBox2.text=dr[0].ToString();
  textBox3.text=dr[0].ToString();
}

con.Close();

con.Open();
String str="select * from emp where empname="Abdul";
cmd=new SqlCommand(str,con);
SqlDataReader dr=cmd.ExecuteReader(); //Correct way
while(dr.Read())
{
  textBox1.text=dr[0].ToString();
  textBox2.text=dr[0].ToString();
  textBox3.text=dr[0].ToString();
}
con.Close();

答案 4 :(得分:0)

CREATE TABLE #T (int_f int)

SELECT
  CASE WHEN EXISTS (
              SELECT 
                 1 
              FROM #T) THEN 'yes'
  ELSE 'No'
END