我想将 IBM DB2 数据库中的股票记录与 SQL 数据库中的表进行比较,并将不同的记录导入到数据视图中。然后我会将不同的记录传输到SQL表中。
我目前正在从 db2 stock 表中获取我想要的记录,但我找不到如何将它们与 SQL stock 表进行比较。我想我需要为 db2 虚拟股票表分配一个字段。我想比较股票代码并获得不同的记录。
我还会在不同记录的开头进行检查,并将它们传输到 SQL stock 表中。
public partial class frmStok : MetroFramework.Forms.MetroForm
{
DB2Connection db2bagla = new DB2Connection(frmMain.settings.db2con);
SqlConnection sqlbagla = new SqlConnection(frmMain.settings.sqlcon);
public frmStok()
{
InitializeComponent();
}
void db2StokGetir()
{
try
{
DB2DataAdapter db2da = new DB2DataAdapter("SELECT DISTINCT S.PARCAKOD,P.ADI,P.BIRIM,P.KDVYUZ,P.GRUP1 FROM DB2ADMIN.T0020031 S LEFT OUTER JOIN DB2ADMIN.T0050030 P ON S.PARCAKOD = P.KOD WHERE ((YEAR( S.TARIH) >= 2023)) GROUP BY S.PARCAKOD,P.ADI,P.BIRIM,P.KDVYUZ,P.GRUP1", db2bagla);
SqlDataAdapter sqlda = new SqlDataAdapter("SELECT STOK_KODU FROM TBLSTSABIT", sqlbagla);
DataSet db2stok = new DataSet();
DataSet sqlstok = new DataSet();
db2da.Fill(db2stok, "DMSSTOK");
sqlda.Fill(sqlstok, "SQLSTOK");
metroGrid1.DataSource = db2stok.Tables[0];
metroLabel1.Text=metroGrid1.RowCount.ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
我建议您在填充数据集后使用 LINQ。
确保您有 LINQ 参考:
using System.Linq;
这是一个示例
var db2stokQry = db2stok.Tables[0].AsEnumerable();
var sqlstokQty = sqlstok.Tables[0].AsEnumerable();
return (from x in db2stokQry
join y in sqlstok on x.PARCAKOD equals y.STOK_KODU
select new ClassObject
{
prop1 = x.Field1,
prop2 = y.Field1,
prop3 = x.Field2
}).ToList();