文字列にデータテーブルに配置された単語が含まれていても正しく動作しないかどうかを調べるif文を実行しようとしています。datatableの文字列がwierdです。 .contain()で動作しません。C#
if (nickName.Contains(dt.Rows[1]["Word"].ToString()))
{
//something something
}
この場合、ニックネームは、ユーザー入力を含む文字列varです。 dtは単語を含むデータテーブルです(実際にはこのDTをループしますが、この例では問題ありません)
これはコピー&ペーストしても機能しません。
私もちょうど
if (dt.Rows[1]["Word"].ToString() == "some word")
(はい私はDTでそのスポットが、私はチェックしようとしている言葉であることを確信している)これにしようとすると、動作しないことに気づきました。 (単語をコピーして貼り付ける場合でも)
do datatablesは面白そうなやり方で文字列を保存しますか?
解決方法はありますか?高度で 感謝:)
(ここではあなたがしたい場合は、コードの複数がある)
//textboxes to vars
string nickName = tbtNickName.Text;
string tweet = tbTweet.Text;
//creating DT
var dt = new DataTable();
using (var da = new SqlDataAdapter("SELECT * FROM Words;", "Data Source=localhost;Initial Catalog=twtWall;User Id=<id>; Password=<password>"))
{
da.Fill(dt);
}
//for each element in an array chek if you are in any inputs
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
//if word detected set error
if (nickName.Contains(dt.Rows[i]["Word"].ToString()))
{
errorProvider.SetError(BtnTweet, "Bad word detected!");
}
//do the same thing with tweets...
}
その行にブレークポイントを置き、 'nickName'と' dt.Rows [i] ["Word"] ToString() 'が各ループと等しいかどうかを調べます。 – Equalsk
文字列の先頭のスペースである可能性があります。 'dt.Rows [i] [" Word "] .ToString()。Trim()'や@Equalskのようにしてください。 – Alisson
可能性がありますhttps://stackoverflow.com/questions/444798/case-insensitive-containsstring –