C# SQL 服务器压缩数据库登录
C# SQL Server Compact Database Login
我正在用 C# 创建一个桌面应用程序。我正在创建一个登录表单。我有一个名为 MyTable
的 table,其中包含列 username
和 password
。
我想对用户进行身份验证,所以我想我想知道受 SQL 查询影响的行数。但是每次我通过执行ExecuteNonQuery()
方法得到-1
。
我的代码:
string Username = username.Text;
string Password = password.Text;
SqlCeCommand commandSelect = new SqlCeCommand("SELECT * FROM MyTable WHERE username=@username AND password=@password", connection);
commandSelect.Parameters.AddWithValue("@username", Username);
commandSelect.Parameters.AddWithValue("@password", Password);
int rows = commandSelect.ExecuteNonQuery();
MessageBox.Show(rows.ToString());
提前致谢。
您最好更改 SQL 以获得这样的计数:
SELECT COUNT(*) FROM MyTable WHERE username=@username AND password=@password
然后使用ExecuteScalar()
代替ExecuteNonQuery
。这样以后就不太可能让你头疼了。
我相信 ExecuteNonQuery() 总是 returns -1,所以在这种情况下不要使用它。史蒂夫的回答应该可以解决问题。
我正在用 C# 创建一个桌面应用程序。我正在创建一个登录表单。我有一个名为 MyTable
的 table,其中包含列 username
和 password
。
我想对用户进行身份验证,所以我想我想知道受 SQL 查询影响的行数。但是每次我通过执行ExecuteNonQuery()
方法得到-1
。
我的代码:
string Username = username.Text;
string Password = password.Text;
SqlCeCommand commandSelect = new SqlCeCommand("SELECT * FROM MyTable WHERE username=@username AND password=@password", connection);
commandSelect.Parameters.AddWithValue("@username", Username);
commandSelect.Parameters.AddWithValue("@password", Password);
int rows = commandSelect.ExecuteNonQuery();
MessageBox.Show(rows.ToString());
提前致谢。
您最好更改 SQL 以获得这样的计数:
SELECT COUNT(*) FROM MyTable WHERE username=@username AND password=@password
然后使用ExecuteScalar()
代替ExecuteNonQuery
。这样以后就不太可能让你头疼了。
我相信 ExecuteNonQuery() 总是 returns -1,所以在这种情况下不要使用它。史蒂夫的回答应该可以解决问题。