c# - 我想检查给定记录是否在数据库中

标签 c# sql-server database

我想检查给定的记录是否在数据库中。它显示错误“无效的列名”

 private void SaveButton_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection("Data Source=PC308433;Initial Catalog=SampleDatabase;Persist Security Info=True;User ID=sa;Password=adm23");

        conn.Open();

        SqlCommand sc = new SqlCommand("select USERNAME from QuizTable where USERNAME=" + UserNameTextbox.Text + "", conn);
        string result =Convert.ToString(sc.ExecuteNonQuery());//I dont know to store the result of query here.Pls help me
        if (result == UserNameTextbox.Text)
            MessageBox.Show("Welcome");
        else
            MessageBox.Show("Please register");

        conn.Close();


    }

最佳答案

你必须使用 ExecuteReader()为此,ExecuteNonQuery()仅适用于插入、更新和删除语句,并使用采用 CommandBehaviour 的构造函数使用 SingleRow 枚举,因为每个用户名应该有一行:

SqlDataReader rdr = sc.ExecuteReader(CommandBehavior.SingleRow);
if(rdr.Read() && (rdr["USERNAME"].ToString() == UserNameTextbox.Text))
            MessageBox.Show("Welcome");
}

旁注:

你应该使用 parameterized queries ,目前您对 sql injection 开放.

关于c# - 我想检查给定记录是否在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31578700/

相关文章:

c# - 函数参数(params object [])有什么区别

c# - MQTTNet 监听主题消息

sql-server - 将记录平铺到值不为空的单行中

sql - MongoDB:如何检索新构造的数据而不是集合中的原始文档?

c# - 如何防止这种布局循环?

c# - 如何从 C# 中的文本中提取连续的电子邮件地址

c# - 批量插入具有地理空间数据类型的表时出现 "Specified type is not registered"错误

sql - "Adding"GROUP BY 's and ORDER BY' 在一个查询中而不是单独的

php - 文本区域上的 nl2br 和 htmlentities

可以将 Excel 工作表转换为数据库表的 Java API