我已经创建了一个正在使用Excel (VBA)的工具,但是我想让它独立于Excel,因为Excel更新包等可能会出现不同的问题。基本上,为了消除可能出错的另一个因素。
我当前的Excel应用程序:
将两个数据库表(客户)导入到两个不同的工作表( sheet2
sheet1 )中,通过比较第2列(名称)和6 (Postanumber)
sheet3,这两个表有重复(两个客户中都有部分相同的客户),VBA代码输入到sheet3
sheet3,只有一个值准备好了,我正在为sheet3执行foreach循环,以便将所有客户导出到另一个系统我从C#代码开始,它能够连接到数据库,并通过合并两个表从两个表中获取所有客户。
从DataGrid开始得到一个想法:
private Task<DataView> GetDataAsync()
{
return Task.Run(() =>
{
string connectionStringDE = "Driver={Pervasive ODBC Client Interface};ServerName=DE875;dbq=@DEDBFS;Uid=DEUsername;Pwd=DEPassword;";
string queryStringDE = "select NRO,NAME,NAMEA,NAMEB,ADDRESS,POSTA,POSTN,POSTADR,COMPANYN,COUNTRY,ID,ACTIVE from COMPANY";
string connectionStringFR = "Driver={Pervasive ODBC Client Interface};ServerName=FR875;dbq=@FRDBFS;Uid=FRUsername;Pwd=FRPassword;";
string queryStringFR = "select NRO,NAME,NAMEA,NAMEB,ADDRESS,POSTA,POSTN,POSTADR,COMPANYN,COUNTRY,ID,ACTIVE from COMPANY";
DataTable dataTable = new DataTable("COMPANY");
// using-statement will cleanly close and dispose unmanaged resources i.e. IDisposable instances
using (OdbcConnection dbConnectionDE = new OdbcConnection(connectionStringDE))
{
dbConnectionDE.Open();
OdbcDataAdapter dadapterDE = new OdbcDataAdapter();
dadapterDE.SelectCommand = new OdbcCommand(queryStringDE, dbConnectionDE);
dadapterDE.Fill(dataTable);
}
using (OdbcConnection dbConnectionFR = new OdbcConnection(connectionStringFR))
{
dbConnectionFR.Open();
OdbcDataAdapter dadapterFR = new OdbcDataAdapter();
dadapterFR.SelectCommand = new OdbcCommand(queryStringFR, dbConnectionFR);
var newTable = new DataTable("COMPANY");
dadapterFR.Fill(newTable);
dataTable.Merge(newTable);
}
return dataTable.DefaultView;
});
}然而,由于缺乏知识,我不太确定在C#中应该使用什么方法来存储所有数据(sheet3,有1000多条记录),然后再导出到另一个带有foreach的系统?我应该创建本地数据库还是可以使用列表?我想我不应该将两个表中的所有值导入到两个不同的列表/数据库表中,然后将它们与另一个表进行比较/合并(就像我在当前Excel安装程序中所做的那样),但是可以在连接、合并和分配给list/database表时执行此操作吗?
发布于 2020-03-20 08:49:42
然而,由于缺乏知识,我不太确信在导出到另一个具有
的系统之前,我应该使用什么方法在C#中存储所有数据(sheet3,有1000多条记录)?
“我应该使用什么”是基于主观/意见的,不能在这里得到真正的回答。可以公平地说,任何您可以找到的合理教程,例如泛型集合或数据集/数据集,都可以轻松地处理这么小的数据集。
我应该创建本地数据库还是可以使用列表?
您可以这样做,但我只会使用一个数据库,如果我是持久化的信息。在我看来,您对数据存储的需求是暂时的,所以我只需要使用内存中的数据集合。
我想我不应该将两个表的所有值导入到两个不同的列表/数据库表中,然后比较/合并到另一个表中
我看不出你为什么不应该
,但可以在连接、合并和分配给list/数据库表时执行此操作?
当然可以通过将一组数据上传到另一组数据所在的数据库中,并让数据库进行合并,从而合并两组数据。
https://stackoverflow.com/questions/60770913
复制相似问题