等于字符串给出-1作为比较结果

时间:2013-11-11 12:20:46

标签: c# string string-comparison

我正在比较两个字符串, 一个来自数据库,另一个来自比较。 但是当我尝试比较相同的字符串时,它会给出错误的结果。

目前我的代码是:

SqlConnection conchk = new SqlConnection();
conchk.ConnectionString = "Data Source=localhost;Initial Catalog=eVoting;Integrated Security=True;Pooling=False";
conchk.Open();
SqlCommand cmdchk = new SqlCommand("select voted from voter where FirstName ='" + N + "'", conchk);
SqlDataReader readerchk = cmdchk.ExecuteReader();
readerchk.Read();
String vchk = readerchk[0].ToString();
String chk = "N";
MessageBox.Show(vchk);
int cas = chk.CompareTo(vchk);
MessageBox.Show("comp res :" + cas);
if (cas == 0)
{
    MessageBox.Show("In if");
}
else
{
    MessageBox.Show("In else");
}

2 个答案:

答案 0 :(得分:0)

在比较之前,您需要trim值:

替换为:

int cas = chk.CompareTo(vchk);

以下内容:

int cas = chk.Trim().CompareTo(vchk.Trim());

答案 1 :(得分:0)

使用此方法比较两个字符串

bool isEqual= string.Equals(vchk, chk); 

CompareTo使用序数排序规则执行区分大小写的比较。

         String vchk = "n";
         String chk = "N";

        int sac = chk.CompareTo(vchk);// result will be 1 .
        int cas = chk.ToUpper().CompareTo(vchk.ToUpper());  // result will be 0 .
        bool isEqual = string.Equals(vchk, chk);  // false

请检查您的代码或尝试修剪字符串并使用ToUpper()。