C#如何从数据库中获取满足条件记录的行数?
以下是我的代码,为什么n总是-1,,不行啊?应该怎么做啊?DBhelperdb=newDBhelper();stringstrsql="selectcount(*)fro...
以下是我的代码,为什么n总是-1,,不行啊?应该怎么做啊?
DBhelper db=new DBhelper();
string strsql = "select count(*) from HouseInf where 状态='未出租'";
int n = Convert.ToInt16(db.GetScalar(strsql));
if (n > 0)
{
//MessageBox.Show("成功!");
houseNum.Text = "房源总数: " + n;
}
public int GetScalar(string strSql)
{
try
{
command = new SqlCommand(strSql, connection);
connection.Open();
int i = (int)command.ExecuteScalar();
return i;
}
catch (Exception)
{
//MessageBox.Show("异常");
connection.Close();
return -1;
}
} 展开
DBhelper db=new DBhelper();
string strsql = "select count(*) from HouseInf where 状态='未出租'";
int n = Convert.ToInt16(db.GetScalar(strsql));
if (n > 0)
{
//MessageBox.Show("成功!");
houseNum.Text = "房源总数: " + n;
}
public int GetScalar(string strSql)
{
try
{
command = new SqlCommand(strSql, connection);
connection.Open();
int i = (int)command.ExecuteScalar();
return i;
}
catch (Exception)
{
//MessageBox.Show("异常");
connection.Close();
return -1;
}
} 展开
4个回答
展开全部
因为你的代码中间有异常,所以会总是执行Catch,返回的就是-1.
所以进不了if语句,因为它没有读出数据来,你打断点调试,看看在哪个地方出现了问题,还是根本就没有这条数据?
所以进不了if语句,因为它没有读出数据来,你打断点调试,看看在哪个地方出现了问题,还是根本就没有这条数据?
追问
有这个数据,我也调试过,就是不知道什么异常。。。。求新方法
追答
你打断点,看局部变量,一步步的看,怎么会看不出来?每一步都拿到了什么数据,在哪一步出了问题。很容易就找出了问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int i =-1;
try
{
command = new SqlCommand(strSql, connection);
connection.Open();
i= (int)command.ExecuteScalar();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
return i;
try
{
command = new SqlCommand(strSql, connection);
connection.Open();
i= (int)command.ExecuteScalar();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
return i;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
路过,学习
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是走了catch
更多追问追答
追问
很明显,应该怎么做
追答
你要看Exception 是什么错误
//MessageBox.Show("异常");
取消注释 改成MessageBox.Show(Exception.ToString());
把这个错误贴出来
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询