Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ช่วยหน่อยนะคะ เกี่ยวกับการ Merge DataTable ค่ะ คือเขียน คอนเน็คกับเซอฟเวอร์ จำนวน 8 เซอฟเวอร์ด้าน



 

ช่วยหน่อยนะคะ เกี่ยวกับการ Merge DataTable ค่ะ คือเขียน คอนเน็คกับเซอฟเวอร์ จำนวน 8 เซอฟเวอร์ด้าน

 



Topic : 041799



โพสกระทู้ ( 108 )
บทความ ( 0 )



สถานะออฟไลน์




คือเขียน คอนเน็คกับเซอฟเวอร์ จำนวน 8 เซอฟเวอร์

ด้านล่างเป็นการกำหนดชื่อ เซอฟร์เวอร์ที่จะคอนเน็ค และคอนเน็คไปยังเซอร์ฟเวอร์ต่างๆ ซื่ง คอนเนคได้ไม่มีปัญหาอะไรค่ะ
Code (C#)
public static ListItem[] GetSite()
        {           

            ListItem[] item = { new ListItem("AIT"), new ListItem("SAB"), new ListItem("AIC"), new ListItem("AIG"), new ListItem("JCK"),new ListItem( "SPK"), new ListItem("JCB"), new ListItem("CTS") };

            return item;

        }
    public static ClsServerSite GetServer(string RC, string Path)
        {
            ClsXML_Serialization xml = new ClsXML_Serialization();
            List<ClsServerSite> List = xml.DeserializeFromXml<List<ClsServerSite>>(Path);
           
            for (int i = 0; i <= List.Count - 1; i++)
            {
                if (List[i].RC_ == RC)
                {
                    return List[i];
                }
            }
            return null;
        
        }


แต่ในส่วนของการ Select ข้อมูลแต่ละ เซอฟเวอร์ น่ะค่ะ ต้องการให้ เอาข้อมูลที่ได้แต่ละเซอฟเวอร์มารวมกันแล้วแสดงใน กริดวิว

โค้ดด้านล่างนี้ค่ะ
Code (C#)
 protected void btnsearch_Click(object sender, EventArgs e)
    {
//ตรวจสอบว่า user ได้เลือกที่จะแสดงข้อมูลของทุก Server หรือไม่
        if (txtSearch.Text.Trim() != "")
        {
           
            if (ddlRC.Text == "ALL") 
            {
                Session["servsite"] = "ALL";
                StrQ();
                ShowGridDataAll(); 
            }
            else
            {
                Session["servsite"] = ddlRC.Text;
                StrQ();
                ShowGridData(ddlRC.Text);
                
            }
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "alert('กรุณาระบุเงื่อนใขการค้นหา');", true);
            
        }

    }

 private void StrQ()
    {
        string STR = "";

        STR = " Select * ";
        STR += " From box_table ";
        STR += " Where " + ddlSearch.Text + " like '%" + txtSearch.Text.Trim() + "%' ";
        if (txtStartDate.Text.Trim() != "" && txtEndDate.Text.Trim() != "")
        {

            string startDate = txtStartDate.Text.Trim();
            string endDate = txtEndDate.Text.Trim();

            STR += " and commentdate >='" + startDate + " 00:00:00' ";
            STR += " and commentdate <='" + endDate + " 23:59:00' ";

        }
        if (ddlstatus.Text != "ALL")
        {
            STR += " and commentstatus='" + ddlstatus.Text + "'";
        }
        if (txtgroupno.Text.Trim() != "")
        {
            STR += " and CoverGroup='" + txtgroupno.Text.Trim() + "'";
        }
        STR += " and comment_doc<>'' ";
        STR += " Order by covergroup,coverlistno ;";

        

      
Session["strq"] = STR;
       
               
        


    }

 private void ShowGridDataAll()
    {

        //DataTable Main_DT = new DataTable();

            ListItem[] item = GetSite();

            for (int i = 0; i <= item.Length - 1; i++)
            {
                string rc = item[i].Value;
                ClsServerSite RC = GetServer(rc, Server.MapPath("Config/ConfigSubSite.xml"));
                ShowGridData(rc);



                    Main_DT.Merge(DT);
                   
               
            }

            if (Main_DT.Rows.Count == 0)
            {

                ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "alert('No data search');", true);

                return;
            }
            GridData.DataSource = Main_DT;
            GridData.DataBind();
          
        
    }

  private void ShowGridData(string strRC)
    {
      
            DT.Clear();
            ClsServerSite RC = GetServer(strRC, Server.MapPath("Config/ConfigSubSite.xml"));
            using (ClsDB_SQL SQL = new ClsDB_SQL())
            {
                
                if (SQL.ConnectSubSite(RC))
                {

                    DT = SQL.Query_Select(Session["strq"] as string );

                    for (int i = 0; i <= DT.Rows.Count - 1; i++)
                    {
                        string sStatus = Convert.ToString(DT.Rows[i]["commentstatus"]);

                        if (sStatus == "Complete")
                        {
                            scomplete = scomplete + 1;
                        }
                        else if (sStatus == "Inprocess")
                        {
                            sinprocess = sinprocess + 1;
                        }
                        else
                        {
                            spending = spending + 1;
                        }
                    }
                    string chksite = Session["servsite"] as string;
                    if (chksite != "ALL")
                    {
                        if (DT.Rows.Count == 0)
                        {

                            ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "alert('No data search');", true);

                            return;
                        }
                        GridData.DataSource = DT;
                        GridData.DataBind();
                        
                    }


                   
                    
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "alert('Connecting Server Fail');", true);

                    return;

                   

                }
            }

    }


ปัญหาคือ มันไม่ยอม Merge ให้น่ะค่ะ จะได้มาแค่เซอฟเวอร์เดียว ตอนนี้คิดว่าติดที่มัน PostBack หรือเปล่า ดาต้าเทเบิ้ลเลยเคลียร์ไป

รบกวนด้วยนะคะ ลองมาทั้งวันแล้วค่ะ แก้ไม่ได้จริงๆ ใครมีแนวทางอื่นขอคำแนะนำด้วยนะคะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-04-22 01:02:04 By : njnight View : 1831 Reply : 3
 

 

No. 1



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เวลาโค้ดเยอะ ก็ขี้เกียจอ่านเหมือนกันเนอะ

datatable มันมี method ให้ merge อยู่แล้วนี้ เวลาใช้ก็แบบนี้

Code (C#)
DataTable1.Merge(DataTable1);







Date : 2010-04-22 12:12:10 By : tungman
 


 

No. 2



โพสกระทู้ ( 108 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้ใช้ เมทอดของมันค่ะ ตรงบันทัดที่ 083 ค่ะ

Code (C#)
Main_DT.Merge(DT);


แต่ปัญหาคือ พอ Select ข้อมูลจาก Server (วนลูปตามจำนวน Server) ต่อไปค่าที่เก็บใน Main_DT มันหายไปค่ะ ผลลัพธ์เลยได้เฉพาะ จาก Server สุดท้าย
ทำยังงัยถึงจะเก็บค่าใน Main_DT ไว้ได้ค่ะ
ยังไม่รู้วิธีแก้เลยค่ะ
Date : 2010-04-22 13:59:19 By : njnight
 

 

No. 3



โพสกระทู้ ( 108 )
บทความ ( 0 )



สถานะออฟไลน์


ทำได้แล้วค่ะ ต้องเอาไปเเก็บใน Dataset ก่อนค่ะ
Date : 2010-04-22 16:41:51 By : njnight
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยหน่อยนะคะ เกี่ยวกับการ Merge DataTable ค่ะ คือเขียน คอนเน็คกับเซอฟเวอร์ จำนวน 8 เซอฟเวอร์ด้าน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่