-1

私は2つの文字列を比較しています。1つはデータベースからのもので、もう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

このメソッドを使用して、2 つの文字列を比較します

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 に答える
0

trim比較する前に値が必要です。

これを置き換えます:

int cas = chk.CompareTo(vchk);

次の場合:

int cas = chk.Trim().CompareTo(vchk.Trim());
于 2013-11-11T12:39:20.683 に答える