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,027

HOME > .NET Framework > Forum > ข้อคำแนะเกี่ยว DataGridView หน่อยครับ เวลาค้นหาให้ DataGrid refresh ตามตัวอักษรที่เราค้นหายังไงครับ ขอคำแนะนำหน่อยครับ



 

ข้อคำแนะเกี่ยว DataGridView หน่อยครับ เวลาค้นหาให้ DataGrid refresh ตามตัวอักษรที่เราค้นหายังไงครับ ขอคำแนะนำหน่อยครับ

 



Topic : 097263

Guest




ข้อคำแนะเกี่ยว DataGridView หน่อยครับ เวลาค้นหาให้ dataGrid refresh ตามตัวอักษรที่เราค้นหายังไงครับ ขอคำแนะนำหน่อยครับ



Tag : Win (Windows App), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-07-01 14:39:43 By : ธีระวุฒิ View : 1638 Reply : 23
 

 

No. 1



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



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

เขียนโค้ดที่ Select ข้อมูล ไว้ที่เหตุการณ์(Event) ที่ข้อมูลมีการเปลี่ยนแปลง Text_Change ใบ้ให้ประมาณนี้ครับ








ประวัติการแก้ไข
2013-07-01 15:24:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-01 15:23:32 By : 01000010
 


 

No. 2

Guest


ขอบคุณครับเดียวจะลองทำดู....ถ้าใบ้เกี่ยวกับหลักการทำงานของมันอีกนิสก็คงดีนะครับพี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-01 21:07:51 By : ธีระวุฒิ
 

 

No. 3

Guest


ที่ว่า Text_Change (Event) ของ TextBox ใช้ไหมครับ..ที่textbox ผมทำให้มันโชร์ ขึ้นมาได้ครับ สมมุติผม พิม A ก็จะมี ข้อมูลคำที่ขึ้นต้นด้วย A ขึ้นมาครับ แต่ว่า ผมอยากให้ ข้อมูลที่อยู่ใน DataGrid มัน refresh ข้อมูลตามด้วยเวลาเราพิม A ข้อมูลที่มีตัว A ก็ให้ dataGrid มันเอา เฉพาะ ชื่อที่มีตัว A ขึ้นมายังงี้ อ่ะครับ จะใช้ (Event) ตัวไหนหรือยังไงครับ....
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-01 21:18:44 By : ธีระวุฒิ
 


 

No. 4



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



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

ข้อมูลที่ว่านี่ใช้คำสั่ง Select มาจากฐานข้อมูลหรือปล่าวครับ ??
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-02 07:58:44 By : 01000010
 


 

No. 5

Guest


ใช่ครับ select มาจาก ฐานข้อมูล SQL Server 2008 ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-02 10:43:55 By : ธีระวุฒิ
 


 

No. 6



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



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

มันจะมีสองวิธีเท่าที่ผมรู้นะครับ
1.Select ข้อมูลจากฐานข้อมูล มาใส่ Dataset แล้วค้นหาจาก Dataset (วิธีนี้ไม่แน่ใจ)
2.Select จากฐานข้อมูลตรงๆ ทุกๆครั้งที่มีการเกิดเหตุการณ์ (Key_Change) ก็จะให้ทำการ Execute ตลอด (แต่จะช้า)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-02 12:41:14 By : 01000010
 


 

No. 7

Guest


ตัวที่ สอง พอจะมีโค้ด ที่เป็นตัวอย่าง สักนิสไหมครับ..
ผม งุมมืดไปแล้วมัน ไม่ได้ไรเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-02 14:55:50 By : ธีระวุฒิ
 


 

No. 8



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



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

ไม่มีโค้ดให้ครับ เพราะผมก็เขียนไม่ถูก

มีเป็นแนวๆนะครับ เช่น ใน Datagrid.Datasource = Dataset

ใน Dataset เราก็ต้อง Fill ข้อมูลมาใส่ก่อนใช่ไหมครับ DataAdapter.Fill(Dataset,"Table")

ไอตอน Fill นี้สำคัญ ข้อมูลจากฐานข้อมูลจะดึงมาใส่ใน Dataset แล้ว Datagrid ก็นำมาอ้างอิงอีกที

ไอตอน Fill เราก็เอาไปใส่ขณะเกิดเหตุการณ์ textbox ตัวอักษรมีการเปลี่ยนแปลง ให้มัน Fill ทุกครั้งที่พิมพ์


ประวัติการแก้ไข
2013-07-02 16:36:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-02 16:35:27 By : 01000010
 


 

No. 9

Guest


ผมจะลองงุมๆดูอีกครังครั้งครับ...แต่ยังไงก็จะทำให้ได้นั้นแหละครับ..ขอบคุณมากๆครับที่ช่วยอธิบายหลักการทำงาน ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-02 19:28:36 By : ธีระวุฒิ
 


 

No. 10

Guest


มีเป็นแนวๆนะครับ เช่น ใน Datagrid.Datasource = Dataset

ใน Dataset เราก็ต้อง Fill ข้อมูลมาใส่ก่อนใช่ไหมครับ DataAdapter.Fill(Dataset,"Table")

// แปลงจาก ที่พี่บอกด้านบนน่าจะได้ประมาณนี้ แต่ได้ ไม่ครบข้อเท่าไร

Code
private void CM() { string sql = "Select FullName from Employees"; comm = new SqlCommand(sql, conn); da = new SqlDataAdapter(comm); ds = new DataSet(); da.Fill(ds, "FullName"); dgvEmployees.DataSource = ds; }


เหลือ 2 ข้อนี้อ่ะครับ ไปไม่ถูดเลยครับ ทำแล้ว จนถึงตอนนี้ ทำยังไม่ได้เลยครับ
ไอตอน Fill นี้สำคัญ ข้อมูลจากฐานข้อมูลจะดึงมาใส่ใน Dataset แล้ว Datagrid ก็นำมาอ้างอิงอีกที

ไอตอน Fill เราก็เอาไปใส่ขณะเกิดเหตุการณ์ textbox ตัวอักษรมีการเปลี่ยนแปลง ให้มัน Fill ทุกครั้งที่พิมพ์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-03 22:29:02 By : ธีระวุฒิ
 


 

No. 11



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



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

บรรทัดที่นำ dataset ไปอ้างอิง ลองใช้อย่างนี้ได้ไหมครับ (dgvEmployees.DataSource = ds.table("FullName")

ต่อจากอ้างอิงแล้วก็ใส่ dgvEmployees.Refresh()

ปล.เขียนสด ไม่แน่ใจนะครับว่าใช่หรือปล่าว หรือเขียนถูกหรือปล่าวแต่เอาไปลองก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-04 08:47:27 By : 01000010
 


 

No. 12

Guest


เขียนยังงี้ มันจะ Refresh DataGrid เลยอ่ะครับ ไม่มีไรเลย

Code (C#)
private void CM()
        {
            string sql = "Select FullName from Employees";
            comm = new SqlCommand(sql, conn);
            da = new SqlDataAdapter(comm);
            ds = new DataSet();
           dgvEmployees.DataSource = ds.Tables["FullName"];
           dgvEmployees.Refresh();
         
        }


หน้าตาตอนแรกยังไม่มีอะไร เปลี่ยนไป

1

แต่พอผมจะพิมหา มักก็ ส่งให้ DataGrid Refresh ข้อมูลข้างในทำให้ หายหมดโดยที่ไม่โชร์ไรเลย แสดงว่า เกือบได้ ผลแต่ ไม่ได้ผล
เหมือนจะ ขาดโค้ดอะไรสักตัว..ที่ต้องทำให้มันแสดง ตามไปด้วย

2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-04 15:39:49 By : ธีระวุฒิ
 


 

No. 13



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



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

-*- ไม่ Fill ข้อมูลเข้าไปใน Dataset ก่อนละครับบบบบบ

da.Fill(ds, "FullName");

บรรทัดนี้ที่คุณเขียนหายไปไหน


ประวัติการแก้ไข
2013-07-04 15:45:19
2013-07-04 15:45:22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-04 15:44:26 By : 01000010
 


 

No. 14

Guest


อ่อ...ผมลืม...ขอโทษที่ครับ

ตอนนี้ ผมค้นหาตามชื่อตาม ID ตาม ชื่อ ได้แล้วครับ

เหลือแค่ให้มัน run ตาม ตัวอักษรที่เราพิมพ์ ที่ผมยังทำไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-04 19:48:06 By : ธีระวุฒิ
 


 

No. 15



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



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

เวลา Select อะนะ คำสั่งหลังที่เขียน Where ก็ใช้Operator Like และใช้ % ครอบคำที่ต้องการค้นหาไว้ เช่น Where [Field] Like '%Bat%'

คำที่ค้นหาได้ อาจจะได้คำว่า Batman , Battle , Batty , Combat เป็นต้น


ประวัติการแก้ไข
2013-07-05 08:52:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 08:52:10 By : 01000010
 


 

No. 16

Guest


ขอบคุณครับพี่
ผมว่ามีอีกทาง ผมว่าจะทำ
textbox autocomplete in datagridview เหมือนที่ผมทำกับ textBox อ่ะครับ แต่ว่าเขียนแล้วมันยังบ่ออกเลยครับ ไม่มีอะไรขึ้นเลย

พี่ช่วยดูโค้ดให้หน่อยว่า ผมจะต้องไปกำหนดตัวไหน อีก ทำไหมมันไม่ ขึ้นอะไรเลย ไม่ error

Code (C#)
private void dgvCustomer_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (dgvCustomer.CurrentCell.ColumnIndex == 1)
            {

                SqlConnection conn = new SqlConnection();
                comm = new SqlCommand();
                comm.Connection = conn;
                comm.CommandType = CommandType.Text;
                AutoCompleteStringCollection acBusIDsorce = new AutoCompleteStringCollection();
                comm.CommandText = " Select Name From Organization";
                conn.Open();
                dr = comm.ExecuteReader();
                if (dr.HasRows == true)
                {
                    while (dr.Read()) acBusIDsorce.Add(dr["Name"].ToString());

                }
                else
                {
                    MessageBox.Show("data Not found");
                }
                dr.Close();
               // TextBox textSearchByName = e.Control as TextBox;
                if (textSearchByName != null)
                {
                    textSearchByName.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                    textSearchByName.AutoCompleteCustomSource = acBusIDsorce;
                    textSearchByName.AutoCompleteSource = AutoCompleteSource.CustomSource;


                }


            }

                }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 12:11:30 By : ธีระวุฒิ
 


 

No. 17



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



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

ตอบความคิดเห็นที่ : 16 เขียนโดย : ธีระวุฒิ เมื่อวันที่ 2013-07-05 12:11:30
รายละเอียดของการตอบ ::
จากโค้ดเท่าที่เห็น เหมือน SqlConnection สร้างอินสแตนขึ้นมาเฉยๆ โดยไม่ใส่ค่า contractor หรือเซ็ท Connect อะไรเลยนะครับ


ผมขออนุญาติแนะนำคุณ ธีระวุฒิ ไปหาอ่านบทความเกี่ยวกับการ Connect Database และ การทำ Binding Control ก่อนดีกว่าครับ

ทำความเข้าใจตรงนั้นให้เข้าใจก่อนดีกว่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 13:13:26 By : 01000010
 


 

No. 18

Guest


ครับผมจะไปศึกษาให้ละเอียดเลยครับ...ผมมือใหม่ครับกำลัง สงใสนั้นสงใสนี้ ลองทำนั้นทำนี้ ในสิ่งที่ตอนเองไม่รู้....ก็อย่างว่าละครับผมยังไม่รู้จริง...

ขอบคุณที่ให้คำแนะนำเสมอมาครับ... ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 15:01:05 By : ธีระวุฒิ
 


 

No. 19



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



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

การอยากรู้อยากเห็น และขี้สงสัย ขี้ซักถามเป็นสิ่งที่ดี ในมุมมองของผมนะครับ ถึงใครจะมองเรายังไง แต่สุดท้ายคนที่ได้ความรู้คือตัวเราครับ

ที่ผมแนะนำให้ไปศึกษาตรงนั้นก่อนเพราะดูจากการเขียนโค้ดของคุณ ธีระวุฒิ ยังติดตรงนั้น ตรงนี้ จุดที่เป็นพื้นฐานอยู่ ซึ่งนั้นเป็นสิ่งไม่ดีเลย

ผมจึงแนะนำให้ไปอ่าน/ฝึกพื้นฐานให้แน่นๆก่อนครับ แล้วเราจะเขียนโค้ดอะไรก็ย่อม สะอาด สวยงาม แน่น กระชับ และต่อยอดได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-05 16:05:48 By : 01000010
 


 

No. 20

Guest


ผมก็จะพยายามทำให้ดีกว่านี้ครับ...ขอบคุณที่ให้คำแนะนำ มวยอ่อน อย่างผมครับ ขอบคุณครับ

ตอนนี้ ผมก็ได้คำตอบในส่วนนี้แล้วครับ...

แค่ไม่กี่บรรทัด....แต่ก๊ดูเหมือนมันจะยากสำหรับผม..เพราะไม่เคยเลยทำ

Code (C#)
        private void showdata(string txtdata)
        {

            string sql = "select * from Organization where Name like '%'+@Name+'%'";
            SqlCommand comm = new SqlCommand(sql, conn);
            comm.Parameters.AddWithValue("@Name", txtdata);           
            da = new SqlDataAdapter(comm);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dgvCustomer.DataSource = ds.Tables[0];
           

        }
//---------------------------------------------------------------

private void textSearchByName_TextChanged(object sender, EventArgs e)
        {
             
             showdata(textSearchByName.Text.Trim());
           
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-06 11:41:40 By : ธีระวุฒิ
 


 

No. 21

Guest


พี่ครับผมมี ข้อ ส่งใส อีกแล้วครับ...

ถ้าผม join ยังงี้ แล้ว

Code (SQL)
select Employees.EmployeeID,antecedent,Employees.FullName,Position,Sex, Employees.Address,Employees.Phone,Birthdate,WorkStart,Salary,Picture,Organization.Name 
From Employees inner join Organization
on Employees.OID=Organization.OID 


ผมอยากจะเอา มาประยุกให้เข้ากับฟังชัน like ยังไงครับ เหมือนกับข้างล่าง อ่ะครับ
มันจะเป็น โค้ด เพื่อใช้ในการค้นหา ผมอยาก เปลี่ยน จาก * ไม่ให้มันโชร์ข้อมูลทั้งหมดเพราะอาจจะมีบ้าง Fill ที่เราต้องการใหมันโชร์ อ่ะครับ จะกำหนดตามที่เราต้องการให้โชร์เท่านั้นครับ เหมือนกับที่ผม join ข้างบนอ่ะครับ ช่วยแนะนำหน่อยนะครับ.. ขอบคุณล่วงหน้าครับ...


select * from Employees where FullName like '%'+@FullName+'%'
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-10 00:02:07 By : ธีระวุฒิ
 


 

No. 22



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



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

ต่อไปเลยครับ

Code (SQL)
select Employees.EmployeeID,antecedent,Employees.FullName,Position,Sex, Employees.Address,Employees.Phone,Birthdate,WorkStart,Salary,Picture,Organization.Name 
From Employees inner join Organization
on Employees.OID=Organization.OID
where Employees.FullName like '%FullName%'

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-10 08:17:57 By : 01000010
 


 

No. 23

Guest


ขอบคุณมาก...ๆ คร๊าฟพี่.....แจ๋วไปเลยครับ..
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-10 11:49:40 By : ธีระวุฒิ
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ข้อคำแนะเกี่ยว DataGridView หน่อยครับ เวลาค้นหาให้ DataGrid refresh ตามตัวอักษรที่เราค้นหายังไงครับ ขอคำแนะนำหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่