用戶表:
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=https://bbs.csdn.net/topics/userName},
new SqlParameter("@userPass",SqlDbType.NVarChar,50){Value=https://bbs.csdn.net/topics/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();
}
}
}
問題:
不管輸入什么樣的用戶名稱密碼,總是彈出登陸失敗。
快郁悶了。
請高手指點一下哪里錯了?
uj5u.com熱心網友回復:
ExecuteNonQuery 回傳的是受影響行數,如果執行的select 陳述句 回傳的總是-1uj5u.com熱心網友回復:
using (SqlDataReader reader = cmd.ExecuteReader())
if (reader.Read())
return reader.GetInt32(0);
uj5u.com熱心網友回復:
ExecuteNonQuery()回傳影響的記錄數,用于增刪改,查詢一般用SqlDataAdapter,在網上查,大把的例子uj5u.com熱心網友回復:
謝謝大神,我明白為什么了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/146969.html
標籤:C#
