阅读固定格式的文本文件-第3部分

本文关键字:文件 3部 文本 定格 格式 | 更新日期: 2023-09-27 18:22:26

所以我最近问了以下问题:

阅读固定格式文本文件-第2部分
读取固定格式文本文件

我终于能够通过使用以下代码读取访问数据库:

string DATABASE_PROVIDER = "Provider=Microsoft.ACE.OLEDB.12.0";
string CVS Application.StartupPath + ""''Database.accdb";
string DATA_SOURCE = "Data Source" + CVS;
string connectionString = DATABASE_PROVIDER + DATA_SOURCE;
string TABLE = " FROM STUFF";
string SELECT = "SELECT CODE, NAME, ICON, FUNCTION;
string StringQueryCmd = SELECT + TABLE;
OleDbConnection MyConnection = new OleDbConnection(connectionString);
OleDbCommand Command = OleDbCommand(StringQueryCmd,MyConnection);
OleDbAdapter MyDataAdapter = new OleDbAdapter(Command);
DataSet MyDataSet = new DataSet();
DataTable MyDataTable = new DataTable();
MyConnection.Open();
MyDataAdapter.Fill(MyDataSet,"STUFF");
MyConnection.Close();

我正试图通过使用以下代码块来利用LINQ到DATASET:

var query = (
from order in MyDataTable.AsEnumerable()
where order.Field<int>("CODE") >= 41
select new
{
CODE = order.Field<int>("CODE"),
NAME = order.Field<string>("NAME"),
ICON = order.Field<string>("ICON"),
FUNCTION = order.Field<string>("FUNCTION")    
}
);

查询的结果没有返回任何结果,我应该得到数千个结果,我的查询有根本问题吗?我还有其他方法可以生成限制DataTable信息的结果吗?

我需要能够提供一个查询(或其他解决方案)一个匹配"NAME"列的正则表达式,并且只得到几个结果。我将尝试使用正则表达式的能力来对每个Name进行匹配(这是一个布尔语句)。

阅读固定格式的文本文件-第3部分

实例化后,您没有用数据初始化MyDataTable,您填写了数据集,但没有填写数据表。所以只需尝试MyDataSet.Tables[0]而不是MyDataTable.AsEnumerable()

// DataSet filled in but data table still empty!
MyDataAdapter.Fill(MyDataSet,"STUFF");