c# сравнение данных с другой таблицей с помощью команды «LIKE» - PullRequest
0 голосов
/ 19 марта 2020

У меня есть две таблицы данных, которые хранятся в строке и строке1 соответственно.

строка данных

ab c

ab

a

row1 с возможностью датирования

abcccd

a

Следовательно, мой код может использовать строку для сравнения со строкой 1 но я получаю только «а». Я хотел, чтобы при сравнении строки с row1 я получал все результаты, связанные с «a». Я знаю команду «like» в sql, но я хотел сделать это в datatable, если есть какие-либо возможные методы, спасибо

if (row["Material"].ToString().Contains(row1["Material"].ToString()))

{
    /// logic
}

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Попробуйте:

//Get the matched data from row
foreach(DataRow r in row1.Rows)
    {
        DataRow[] matchings = row.Select($"Meterial like '%{r["Meterial"]}%'");
        if(matchings.Length>0)
        {
            //logic
        }
    }

ИЛИ

//Get the matched data from row1
foreach(DataRow r in row.Rows)
    {
        DataRow[] matchings = row1.Select($"Meterial like '%{r["Meterial"]}%'");
        if(matchings.Length>0)
        {
            //logic
        }
    }

Вы можете изменить следующее выражение в зависимости от ваших потребностей:

'%{r["Meterial"]}%' // Matches where ever it finds text

'{r["Meterial"]}%'  // Matches if starts with

'%{r["Meterial"]}'  // Matches if ends with
0 голосов
/ 19 марта 2020

Попробуйте

if (row["Material"].Where(x => x.ToString().Contains(row1["Material"].ToString()))) 
{ 
//Code here
}
...