c# - 从数据库中检查字符串值

标签 c# sql asp.net

我在比较字符串值时遇到奇怪的问题。我在 SQL 中有一个类型为 (nchar) 的值,该值等于“文本”。然后我将这个值设置为字符串变量 x,然后我将字符串变量 x 与单词“text”进行比较。

问题是它显示 x 不等于值“文本”,即使当我将 x 值添加到标签时,它也显示“文本”一词。

这是我的代码:

string x;
using (SqlCommand cmd = new SqlCommand(
       "select column from text_table where  column = 'text'", sqlCon))
{
    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        if (reader.Read())
        {
            x = reader["column"].ToString();

            if (x.Equals("text"))
            {
                // run code  
            }
            else
            {
                label1.Text ="x doesn't equal text";
            }

当我使用代码时,它总是显示消息“x 不等于文本”,但它应该运行代码,因为字符串 x 的值为“文本”

最佳答案

您已经使用了长度恒定的“nchar”列类型。我不确定,但在比较之前进行修剪可能会解决您的问题。

尝试

x = reader["column"].ToString().Trim();

还有一个Bug,我觉得:(if (stat.Equals("text"))这里没有"x"。

关于c# - 从数据库中检查字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58620472/

相关文章:

c# - 如果列存在,则从数据库中选择列

c# - 在 C# 中访问 json.net jarray 中的项目

java - 使用 jOOQ 选择 rownum/max(rownum)

mysql - 连接 3 个表 MySQL

asp.net - 每次按钮都会导致完整的回发,即使是在更新面板中

c# - 删除 xDocument 中的所有 "<Time>"节点

c# - 使用带偏移量的基址指针读取进程内存

SQL Server : Does 'DROP TABLE' inside transaction causes an implicit commit?

javascript - 无法显示已存在的文件 jQuery 文件 uploader

c# - 是否可以部分部署到 ASP.Net MVC?