C# 如何将表与Datatable或Datatable A与Datatable B进行比较,并通过c更新表
我想找到最好、最快的解决方案 Dt_包含2列和菜单行的所有页面。第0列=模型图,第1列=价格。一串 [dbo].[TBL_Sku_RAM]带列:[ID]int、[Sku]string、[ModelRam]string、[Price]string 我想将Dt_AllPage的每行列ModelRam与TBL_Sku_RAM的每行colmun Sku进行比较 为此,从tbl_sku_ram中选择并附加到Dt_SelectTBlRAM,并比较两个名为:Dt_AllPage和Dt_SelectTBlRAM的数据表 如果在Dt_SelectTBlRAM中存在一行Dt_AllPage,则获取Dt_SelectTBlRAM的ID并获取该行存在Dt_AllPage的价格,并更新[dbo].[TBL_Sku_RAM]的[ModelRam]、[Price]列 例如: 在Dt_AllPage中 在[dbo].[TBL\U Sku\U RAM]中 输出: 在[dbo].[TBL\U Sku\U RAM]中 代码: 一, 二,C# 如何将表与Datatable或Datatable A与Datatable B进行比较,并通过c更新表,c#,linq,datatable,C#,Linq,Datatable,我想找到最好、最快的解决方案 Dt_包含2列和菜单行的所有页面。第0列=模型图,第1列=价格。一串 [dbo].[TBL_Sku_RAM]带列:[ID]int、[Sku]string、[ModelRam]string、[Price]string 我想将Dt_AllPage的每行列ModelRam与TBL_Sku_RAM的每行colmun Sku进行比较 为此,从tbl_sku_ram中选择并附加到Dt_SelectTBlRAM,并比较两个名为:Dt_AllPage和Dt_SelectTBlRAM
如果不清楚,请为您征求意见,不要关闭,请为Dt_SelectTBlRAM提供方案,并告诉我们什么与当前代码不兼容什么是方案?我不知道如何为数据表添加scheme:只需按照与其他两个表相同的方式发布即可。你做的有什么不对吗?第一种方法是正确的,但不是快速和专业的。
ModelRam Price
-------------- ----------
4GB DDR3 PC3 1,000
8GB DDR3 PC3L Geil 1.35V 5,000
ID Sku ModelRam Price
--- ----------------- -------------- ----------
1 8GBDDR3 pc3L-1600 null null
2 1GBDDR3-1066 null null
3 2GBDDR2-800 null null
4 1GBDDR2-667 null null
ID Sku ModelRam Price
--- ----------------- -------------- ----------
1 8GBDDR3 pc3L-1600 8GB DDR3 PC3L Geil 1.35V 5,000
2 1GBDDR3-1066 null null
3 2GBDDR2-800 null null
4 1GBDDR2-667 null null
for (int i = 0; i < Dt_AllPage.Rows.Count; i++)
{
Model_name = Dt_AllPage.Rows[i][0].ToString();
DataSet Ds_SelectTBlRAM = DAL.SelectTBlRAM();
DataTable Dt_SelectTBlRAM = Ds_SelectTBlRAM.Tables[0];
for (int RowTBL = 0; RowTBL < Dt_SelectTBlRAM.Rows.Count; RowTBL++)
{
if (Regex.IsMatch(Dt_SelectTBlRAM.Rows[RowTBL][1].ToString(), Model_name))
{
int ModelId = (int)Dt_SelectTBlRAM.Rows[RowTBL][0];
string Price = Dt_AllPage.Rows[i][1].ToString();
DAL.Update_Price_Model(Model_name, Price, ModelId);
}
}
}
for (int i = 0; i < .Rows.Count; i++)
{
Model_name = Dt_AllPage.Rows[i][0].ToString();
DataSet Ds_SelectTBlRAM = DAL.SelectTBlRAM();
DataTable Dt_SelectTBlRAM = Ds_SelectTBlRAM.Tables[0];
DataRow row1 = Dt_SelectTBlRAM.AsEnumerable().FirstOrDefault(r => r.Field<string>("SKU").Contains(Model_name));
foreach (DataRow row2 in Dt_SelectTBlRAM.Rows)
{
if (row1 != null)
{
int Model_ID = (from DataRow DR in Dt_SelectTBlRAM.Rows
where (string)DR["SKU"] == Model_name
select (int)DR["ID"]).FirstOrDefault();
}
}
string Price = Dt_AllPage.Rows[i][1].ToString();
Model_name = Dt_AllPage.Rows[i][0].ToString();
}
for (int i = 0; i < Dt_AllPage.Rows.Count; i++)
{
Model_name = Dt_AllPage.Rows[i][0].ToString();
DataSet Ds_SelectTBlRAM = DAL.SelectTBlRAM();
DataTable Dt_SelectTBlRAM = Ds_SelectTBlRAM.Tables[0];
DataRow row1 = Dt_SelectTBlRAM.AsEnumerable().FirstOrDefault(r => r.Field<string>("SKU").Contains(Model_name));
foreach (DataRow row2 in Dt_SelectTBlRAM.Rows)
{
if (row1 != null)
{
int Model_ID = (from DataRow DR in Dt_SelectTBlRAM.Rows
where (string)DR["SKU"] == Model_name
select (int)DR["ID"]).FirstOrDefault();
}
}
string Price = Dt_AllPage.Rows[i][1].ToString();
Model_name = Dt_AllPage.Rows[i][0].ToString();
}