C# DataTable有问题。请选择

C# DataTable有问题。请选择,c#,datatable,C#,Datatable,是否有方法在DataTable中查找值使用方法选择: 选择(“像“%10%”这样的数字); 但是数字类型是Int,而这段代码不起作用…看看t-SQL函数,它们可能会对您有所帮助。基本上,在您的查询中,使用CAST或CONVERT(不确定哪一个最适合您)将int更改为字符串,您可以对其执行之类的。查看T-SQL函数,它们可能会对您有所帮助。基本上,在您的查询中,使用CAST或CONVERT(不确定哪一个最适合您)将int更改为一个字符串,您可以对其执行之类的操作。如果您真的希望有这样的行为,那

是否有方法在DataTable中查找值使用方法选择:

选择(“像“%10%”这样的数字);


但是数字类型是Int,而这段代码不起作用…

看看t-SQL函数,它们可能会对您有所帮助。基本上,在您的查询中,使用
CAST
CONVERT
(不确定哪一个最适合您)将int更改为字符串,您可以对其执行
之类的

查看T-SQL函数,它们可能会对您有所帮助。基本上,在您的查询中,使用
CAST
CONVERT
(不确定哪一个最适合您)将int更改为一个字符串,您可以对其执行
之类的操作。

如果您真的希望有这样的行为,那么最好在表中添加额外的计算列,如“NumberText”使用类型字符串,它将存储与列编号相同的值。然后可以执行表达式:
items。选择(“类似“%10%”的NumberText)

如果您真的希望有这样的行为,那么最好只需在表中添加额外的计算列,如带有字符串类型的“NumberText”,它将存储与列Number相同的值。然后可以执行表达式:
items。选择(“类似“%10%”的NumberText)

您可以通过以下方式使用linq:

var matchingRows =
    from item in items.AsEnumerable()
    where item.Field<string>("Number").Contains("10")
    select item;
var匹配行=
来自items.AsEnumerable()中的项
其中项目字段(“编号”)包含(“10”)
选择项目;
或者,如果数字实际上是一个数字:

var matchingRows =
    from item in items.AsEnumerable()
    where item.Field<double>("Number").ToString().Contains("10")
    select item;
var匹配行=
来自items.AsEnumerable()中的项
其中item.Field(“Number”).ToString()包含(“10”)
选择项目;

您可以通过以下方式使用linq:

var matchingRows =
    from item in items.AsEnumerable()
    where item.Field<string>("Number").Contains("10")
    select item;
var匹配行=
来自items.AsEnumerable()中的项
其中项目字段(“编号”)包含(“10”)
选择项目;
或者,如果数字实际上是一个数字:

var matchingRows =
    from item in items.AsEnumerable()
    where item.Field<double>("Number").ToString().Contains("10")
    select item;
var匹配行=
来自items.AsEnumerable()中的项
其中item.Field(“Number”).ToString()包含(“10”)
选择项目;

如果内存可用,则需要通过将单引号加倍来转义单引号。即:

items.Select("Number like ''%10%''");

如果内存可用,您需要通过加倍来转义一个引号。即:

items.Select("Number like ''%10%''");

您可以使用DataView筛选DataTable中的值

DataView dv = new DataView(dtSample);
dv.RowFilter = "Number like '%10%'";

您可以使用DataView筛选DataTable中的值

DataView dv = new DataView(dtSample);
dv.RowFilter = "Number like '%10%'";

对于未来的读者,这可能会有帮助:

DataRow[] matchingRows = a.Select("Convert(Age, 'System.String') like '2%'   "); // cut and paste from my code
因此,在您的代码中:

DataRow[] matchingRows = a.Select("Convert(Number, 'System.String') like '10%' "); // where Number is the name of your column.

对于未来的读者,这可能会有帮助:

DataRow[] matchingRows = a.Select("Convert(Age, 'System.String') like '2%'   "); // cut and paste from my code
因此,在您的代码中:

DataRow[] matchingRows = a.Select("Convert(Number, 'System.String') like '10%' "); // where Number is the name of your column.

是否要匹配任何包含10的值?所以12312310324235、10100、234324510都匹配,但23432451不匹配?是否匹配任何包含10的值?所以12312310324235,10100,234324510都匹配,但23432451不匹配?谢谢,我只是写了新的sql查询,其中字段'Number'转换为varchar,然后我把它放到DataTable谢谢,我只是写了新的sql查询,其中字段'Number'转换为varchar,然后我把它放到DataTable