C# SQL 服务器压缩数据库登录

C# SQL Server Compact Database Login

我正在用 C# 创建一个桌面应用程序。我正在创建一个登录表单。我有一个名为 MyTable 的 table,其中包含列 usernamepassword

我想对用户进行身份验证,所以我想我想知道受 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,所以在这种情况下不要使用它。史蒂夫的回答应该可以解决问题。