新手请教一个SqlParameter问题

阿波20131215 2019-06-24 06:13:48
用户表:
CREATE TABLE [dbo].[sys_user](
[ID] [int] IDENTITY(1,1) NOT NULL,
[userName] [nvarchar](50) NULL,
[userPass] [nvarchar](50) NULL,
CONSTRAINT [PK_sys_user] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

cs文件:
private void btnLogin_Click(object sender, EventArgs e)
{
var userName = txtuser.Text.Trim();
var userPass = txtPass.Text.Trim();
string sql = "SELECT count(*) FROM sys_user WHERE username=@userName AND userpass=@userPass";

SqlParameter[] pmt = new SqlParameter[] {
new SqlParameter("@userName",SqlDbType.NVarChar,50){Value=userName},
new SqlParameter("@userPass",SqlDbType.NVarChar,50){Value=userPass}
};

int r =Convert.ToInt32(SqlHelper.ExecuteNonQuery(sql, pmt));
if (r > 0)
{
MessageBox.Show("登陆成功");
}
else
{
MessageBox.Show("登陆失败");
}

}

SqlHelper文件:
public static int ExecuteNonQuery(string sql,params SqlParameter[] pms)
{
using (SqlConnection conn=new SqlConnection(conStr))
{
using (SqlCommand cmd=new SqlCommand(sql,conn))
{
if (pms !=null)
{
cmd.Parameters.AddRange(pms);
}
conn.Open();
return cmd.ExecuteNonQuery();
}
}
}

问题:
不管输入什么样的用户名称密码,总是弹出登陆失败。
快郁闷了。
请高手指点一下哪里错了?
...全文
156 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿波20131215 2019-06-25
  • 打赏
  • 举报
回复
引用 1 楼 jinkuang45 的回复:
ExecuteNonQuery 返回的是受影响行数,如果执行的select 语句 返回的总是-1
谢谢大神,我明白为什么了
123321... 2019-06-25
  • 打赏
  • 举报
回复
ExecuteNonQuery()返回影响的记录数,用于增删改,查询一般用SqlDataAdapter,在网上查,大把的例子
冰川711 2019-06-24
  • 打赏
  • 举报
回复

using (SqlDataReader reader = cmd.ExecuteReader())
                if (reader.Read())
                    return reader.GetInt32(0);     
冰川711 2019-06-24
  • 打赏
  • 举报
回复
ExecuteNonQuery 返回的是受影响行数,如果执行的select 语句 返回的总是-1

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧