C#兩個datetable運用linq進行聯集查詢並寫入新表

來源:互聯網
上載者:User

   在C#中直接寫SQL查詢語句就可以實現SQL中聯集查詢表的功能,但有時候不得不對兩個datetable進行linq聯集查詢。 

   string strCon = "Data Source=(local);Database=mete_data;Uid=sa;Pwd=123;";//定義資料庫連接字串

            SqlConnection sqlcon = new SqlConnection(strCon);//執行個體化資料庫連接對象
            SqlDataAdapter sqlda;//聲明SqlDataAdapter對象
            DataSet myds = new DataSet();//執行個體化資料集對象
            sqlda = new SqlDataAdapter("select * from USERMESSAGE", sqlcon);//執行個體化資料庫橋接器對象
            sqlda.Fill(myds, "A");//填充DataSet資料集
            sqlda = new SqlDataAdapter("select * from RAIN_REALTIME", sqlcon);

            sqlda.Fill(myds, "B");//填充DataSet資料集

    var query = from abc in myds.Tables["A"].AsEnumerable()//使用LINQ從資料集中查詢所有資料
                         join cde in myds.Tables["B"].AsEnumerable()
                         on abc.Field<string>("StationNo") equals cde.Field<string>("GprsID")
                         orderby abc.Field<string>("subdistrict") descending
                         select new
                          {
                              StreetName = abc.Field<string>("subdistrict"),
                              StationName = abc.Field<string>("StationName"),
                              rainValue = cde.Field<Int32>("RainValue"),
                          };
            DataTable boundTable = new DataTable();
            boundTable.Columns.Add("StreetName");
            boundTable.Columns.Add("StationName");
            boundTable.Columns.Add("rainValue", typeof(double));//這句話很重要,否則預設為string格式,影像彙總函式操作
            query.ToList().ForEach(q => boundTable.Rows.Add(q.StreetName, q.StationName, q.rainValue));
            //DataTable boundTable = query.CopyToDataTable<DataRow>();//這一句總是出錯,請高手相助
            dataGridView1.DataSource = boundTable;//顯示查詢到的資料集中的資訊

    //彙總函式

    object test = dt.Compute("sum(rainValue)", "");
             MessageBox.Show(test.ToString());

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.