通过读取器检索到的C#MSSQL字符串与当前输入的单词不相等,因为缺少一个引号(";)

通过读取器检索到的C#MSSQL字符串与当前输入的单词不相等,因为缺少一个引号(";),c#,sql,sql-server,sqldatareader,reader,C#,Sql,Sql Server,Sqldatareader,Reader,在用户注册窗口中,我比较服务器中是否有我们非常熟悉的相同ID 它以前工作过,但奇怪的是现在不工作了,因为 (检索到的字符串)读取器[“userid”]=“绿色自然我可以说明显而易见的情况吗?字符串不一样是因为它们不一样。显然有人在把它们输入数据库。缺少引号是一种区别。您能检查一下数据库中存储了什么值吗?您还可以检查数据类型,查看数据库是否可以存储所有字符。当您查看字符串值时,调试器会添加引号。它们实际上并不存在于数据库值中。事实上,你没有看到结尾的引语,让我觉得你在单词后面有空格(很多空格)。尝

在用户注册窗口中,我比较服务器中是否有我们非常熟悉的相同ID

它以前工作过,但奇怪的是现在不工作了,因为

(检索到的字符串)读取器[“userid”]=“绿色自然
我可以说明显而易见的情况吗?字符串不一样是因为它们不一样。显然有人在把它们输入数据库。缺少引号是一种区别。您能检查一下数据库中存储了什么值吗?您还可以检查数据类型,查看数据库是否可以存储所有字符。当您查看字符串值时,调试器会添加引号。它们实际上并不存在于数据库值中。事实上,你没有看到结尾的引语,让我觉得你在单词后面有空格(很多空格)。尝试修剪返回值并告诉我们列的数据类型。Varchar vs char,nvarchar vs nchar可能是问题的根源。解决了)非常感谢你们所有人..我刚刚在写完这个问题后自己解决了..我最近做了一个新表,错误地将列作为nchar,它必须是nvarchar..但GvS和Steve也是非常正确的!我非常感谢你们。非常感谢你!我能说清楚吗?字符串不一样是因为它们不一样。显然有人在把它们输入数据库。缺少引号是一种区别。您能检查一下数据库中存储了什么值吗?您还可以检查数据类型,查看数据库是否可以存储所有字符。当您查看字符串值时,调试器会添加引号。它们实际上并不存在于数据库值中。事实上,你没有看到结尾的引语,让我觉得你在单词后面有空格(很多空格)。尝试修剪返回值并告诉我们列的数据类型。Varchar vs char,nvarchar vs nchar可能是问题的根源。解决了)非常感谢你们所有人..我刚刚在写完这个问题后自己解决了..我最近做了一个新表,错误地将列作为nchar,它必须是nvarchar..但GvS和Steve也是非常正确的!我非常感谢你们。非常感谢你!
if (reader.Read())
{

    if (reader["userid"].ToString() == textBoxGR1.Text)
    {
        MessageBox.Show("someone is using this ID already. Please try another ID");
        return;
    }

}