Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将表与Datatable或Datatable A与Datatable B进行比较,并通过c更新表_C#_Linq_Datatable - Fatal编程技术网

C# 如何将表与Datatable或Datatable A与Datatable B进行比较,并通过c更新表

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_包含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]中

代码:

一,

二,


如果不清楚,请为您征求意见,不要关闭,请为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();

       }