c# - 检查数据表是否为空

标签 c# sql

以下代码是我一直用来从 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/

相关文章:

sql - Sequelize.js 中的 belongsTo 与 hasMany

c# - 在 asp.net 中转动表 "on it' s side"- 怎么样?

c# - 解析空格分隔文本的最佳方法

mysql - 如何在 mysql 中显示具有计算的运行时值(即不在数据库中)的虚拟列?

sql - 如何在 SQL Server 2005 中捕获截断错误?

c# - 在 c# 中为 trello api 硬编码登录凭据

sql - 使用 ROW_NUMBER() 随机获取记录的问题 (SQL Server 2005)

c# - 如何使用 ASP.NET Repeater 制作幻灯片

c# - 为什么这个 MultiDataTrigger 会在动画上抛出异常?

c# - C#中派生类的可视化