以下代码是我一直用来从 sql 数据库中检索用户信息的代码。
string userName = LoginUser.UserName;
string password = LoginUser.Password;
string comm = "SELECT Username,Password,Clientname,Role FROM Users WHERE Username = '" + userName + "';";
bool rememberUserName = LoginUser.RememberMeSet;
SqlConnection conn = new SqlConnection(connstring);
conn.Open();
SqlCommand command = new SqlCommand(comm, conn);
SqlDataAdapter da = new SqlDataAdapter(command);
DataTable dt = new DataTable();
da.Fill(dt);
DataRow dr = dt.NewRow();
if (dt != null)
{
//logic
}
但是,当数据库中没有用户名等于 LoginUser.Username 的条目时,(dt != null) 不会返回 false。是否有不同的方法来检查 sql 命令是否成功?
最佳答案
如果没有记录匹配,您将得到一个空的 DataTable
,因此您可以检查返回的记录数:
if (dt.Rows.Count > 0)
并且,稍微偏离主题,请阅读您的问题下方的评论,然后谷歌术语 SQL 注入(inject)和参数化 SQL 语句。尝试从 this 开始.
关于c# - 检查数据表是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12358950/