-1

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

目前我的代码是:

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");
}
4

2 回答 2

0

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

替换这个:

int cas = chk.CompareTo(vchk);

有以下内容:

int cas = chk.Trim().CompareTo(vchk.Trim());
于 2013-11-11T12:39:20.683 回答
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()。

于 2013-11-11T12:40:14.120 回答