我正在使用以下代码将filename变量传递给DataTable Select语句。但返回的结果为null。
var filteredDataRows2 = dt.Select("Status = 'Valid' AND Filename ='"+filename+"'");
我做错了什么?请指教。
更新:Datatable dt
包含值。文件名中有多个空格eg:my cool file 2018..
,这可能是问题吗?
首先,检查数据表中的数据是否有任何数据!如果你想用你的条件得到它,那么用这个语句测试它。
filteredDataRows2 = dt.Select(String.Format("Status = Valid AND Filename = '{0}'", filename));
请在DataTable
本身显示相关数据;我创建了以下最小示例,但无法重现您遇到的行为。
DataTable table = new DataTable();
table.Columns.Add("Status", typeof(string));
table.Columns.Add("Filename", typeof(string));
table.Rows.Add("Valid", "C:\\Test File With Spaces.txt");
table.Rows.Add("Valid", "C:\\Test File.txt");
table.Rows.Add("Invalid", "C:\\Test File With Spaces.txt");
table.Rows.Add("Valid", "C:\\Test.txt");
string filename = "C:\\Test File With Spaces.txt";
var allRows = table.Select(); // Expected Rows: 4 Actual Rows: 4
var filteredRows = table.Select("Status = 'Valid'"); // Expected Rows: 3 Actual Rows: 3
var filteredRows2 = table.Select($"Status = 'Valid' AND Filename = '{filename}'"); // Expected Rows: 1 Actual Rows: 1