首页 > 解决方案 > 检查数据库中的字符串值

问题描述

我在比较字符串值时遇到了奇怪的问题。我在 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 的值是“文本”

标签: c#sqlasp.net

解决方案


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

尝试

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

我认为还有一个错误:()中没有“x” if (stat.Equals("text")


推荐阅读