将变量传递给datatable的select方法但产生空结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将变量传递给datatable的select方法但产生空结果相关的知识,希望对你有一定的参考价值。
我正在使用以下代码将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
以上是关于将变量传递给datatable的select方法但产生空结果的主要内容,如果未能解决你的问题,请参考以下文章
通过数据库上下文将空 DataTable 传递给 SQL Server 存储过程
如何将值从 v-select 传递给方法 - 它始终与默认值相同
使用 codeigniter 将变量传递给 SELECT 子句