Foreach循环从Access数据表中提取文本文件,使用Excel中的列
本文关键字:使用 Excel 文件 提取 循环 Access 数据表 Foreach 取文本 | 更新日期: 2023-09-27 18:13:02
我要做的是创建一个控制台应用程序,从Access数据库中提取单个表,使用app.config中的SQL查询,以便可以在不更改应用程序中的代码的情况下更改SQL。提取的信息必须是文本文件格式。困难的部分是,我有一个Excel文件与表的映射,我只需要提取该信息,并添加一些其他的。
例如,我需要创建一个原来不在数据表中的新列,并给它一个默认值。这些信息在Excel文件中
我已经完成了连接,我从Access数据库中提取了一个表,用于临时数据表。我已经从Excel文件中获得了一个数据表,只有我需要在临时数据表中使用的列。
我需要创建一个foreach循环来检查Excel中的a列是否在使用中。如果是,然后我需要检查另一列,包含该列的名称在Access数据表,如果有一个值,我需要提取该列的文本文件,如果没有值,我需要检查另一列,包含一个默认值,我需要将该值添加到一个列,不存在于数据库中。如果这两列都没有值,那么我只需要在文本文件中添加一个带有宽度值的空白。
提取到文本文件中的所有这些列都需要具有width-string。Width在它们之间有一个空格,不需要提取列名。
这是我目前为止的记录:
static void createfile(DataTable accessTable, DataTable excelTable)
{
string strFileData = "";
foreach(DataRow accessRow in accessTable.Rows)
{
foreach (DataRow excelrow in excelTable.Rows)
{
string fieldname = "";
fieldname = excelrow["FieldName"] //if it's not empty
strFileData.insert accessRow[fieldname];
string test = accessRow[fieldname.ToString()];
if(position == 0)
strFileData = strFileData.Insert(0,iNoOf2025.ToString().PadLeft(width, '0'));
}
//insert in the text file
感谢您的回答,我已经解决了这个问题,我只需要在foreach中创建一个foreach,并使用一些if操作符指定每个foreach循环中的操作。