sql 查询问题!返回值为什么总是为0?

如题,代码如下:publicintDengluyanzheng(Stringusername,Stringuserpwd){Stringsql=null;if(userp... 如题,代码如下:
public int Dengluyanzheng(String username, String userpwd)
{
String sql = null;
if (userpwd != "")
{
sql = "select PowerIndex from Power where PowerName = '" + username + "' and PowerKey = '" + userpwd + "'";
}
else
{
sql = "select PowerIndex from Power where PowerName = '" + username + "' and PowerKey is null";
}

try
{
this.getOpen();

odcmd = new OleDbCommand(sql, odcon);
object x = (object)odcmd.ExecuteScalar();
int i = Convert.ToInt32(x);

return 0 != i ? 1 : 2;
}
catch (Exception)
{
this.getClose();
return 3;
}

}

执行SQL 语句后 i 的值 始终为:0
SQL 语句没错!在查询分析器中验证过!如果用户名和密码正确能返回对应的ID ,如果不正确就什么也没有...

请问下!是不是我的command的方法用错了? 先谢谢各位了!
我手动给查询条件赋值!

如果有就返回这样
powerIndex
1
自动增长列

如果没有就会返回这样
PowerIndex
自动增长列

这说明SQL 语句是对的!

可是执行到object 这里的 时候 i 的返回 值始终是0 。。。请问我接受的有问题吗?该如何接收呢?
展开
 我来答
百度网友62c5620
2009-06-16 · TA获得超过154个赞
知道答主
回答量:155
采纳率:0%
帮助的人:76.9万
展开全部
object x = (object)odcmd.ExecuteScalar();
这句话查询ExecuteScalar()返回的是第一行的第一列的数据影响说,如果没有,则返回的是0,有则返回的是1.
你把这件改成
int x=odcmd.ExecuteNonQuery();就OK了
百度网友6eed2f8
2009-06-15 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3806万
展开全部
检查你的username和userpwd 时候含有多余的空格
if (userpwd != "")
{
sql = "select PowerIndex from Power where PowerName = '" + username.Trim() + "' and PowerKey = '" + userpwd.Trim() + "'";
}
else
{
sql = "select PowerIndex from Power where PowerName = '" + username.Trim() + "' and PowerKey is null";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式