我在比较字符串值时遇到奇怪的问题。我在 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/