-1
문자열에 데이터 테이블에있는 단어가 들어 있는지 확인하는 if 문을 실행하려고하는데 제대로 작동하지 않습니다.데이터 테이블의 문자열이 이상합니다. .contain() 함께 작동하지 않습니다. C#
이 경우 닉네임은 사용자 입력을 포함하는 문자열입니다. 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 –