我有一张表说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,当我这样做时它应该显示一些错误,怎么做?
答案 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.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