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 > ขอสอบถามเรื่องค้นหาข้อมูลในฐานข้อมูลทีละหลายๆตัวในครั้งเดียว VB.Net ครับ



 

ขอสอบถามเรื่องค้นหาข้อมูลในฐานข้อมูลทีละหลายๆตัวในครั้งเดียว VB.Net ครับ

 



Topic : 115926



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



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




คือผมต้องการที่จะค้นหาข้อมูลในฐานข้อมูลทีละหลายๆตัวในครั้งเดียวครับพอจะแนะแนวทางได้ไหมครับ VB ครับขอบคุณครับ



Tag : .NET, Ms SQL Server 2008, VB.NET









ประวัติการแก้ไข
2015-04-21 14:42:34
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-04-21 14:39:52 By : ์New_User View : 2020 Reply : 25
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

ถ้า SQL Server ทำเป็น Link Server ไว้ครับ จากนั้นจะใช้การสร้าง VIEW หรืออะไรก็ว่าไป โดยสามารถ JOIN / UNION ได้หลาย ๆ ตารางครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-21 14:51:08 By : mr.win
 


 

No. 2



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



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


พี่วิน
แบบว่าคือผมมีข้อมูลอยู่ในฐานข้อมูลแล้วผมต้องการจะค้นหาข้อมูลแต่ต้องการค้นหาทีละหลายๆตัวดังตัวอย่างผมใช้ DataGridView1

DataGridView1
77

เมือกดปุ่มค้นหาก็จะไปดึงข้อมูลจากฐานข้อมูลมาแสดงใน DataGridView2 ตามข้อมูลที่ค้นหาอ่ะครับ ผมเขียนด้วยภาษา VB 2010 ครับช่วยแนะนำหน่อยครับ

DataGridView2
88

ประมาณนี้พี่


ประวัติการแก้ไข
2015-04-21 15:51:21
2015-04-27 08:17:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-21 15:49:59 By : ืNew_User
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

จัดการที่ Query ครับ จะ JOIN หรือ UNION ก็ว่าไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-22 09:55:28 By : mr.win
 


 

No. 4



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



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


พี่ครับครับคือ ผม JOIN SQL ไว้แล้วพี่ แต่ผมยังงงอยู่ว่าจะเขียน Code VB ออกมายังไงให้ไปดึงข้อมูลจากดาต้าเบสมาเช็คกับ DataGridView1 จากนั้นให้มาโชว์ใน DataGridView2 อ่ะครับ


ประวัติการแก้ไข
2015-04-24 13:23:58
2015-04-24 16:57:32
2015-04-25 08:11:34
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-24 12:54:36 By : New_User
 


 

No. 5



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



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


คือผมใช้DataGridView1 เป็นตัวค้นหาแทน Textbox อ่ะครับเพราะ DataGridView มันค้นหาได้ทีละหลายตัว Textbox มันค้นได้ทีละตัวพอตัวอย่างไหมครับ


ประวัติการแก้ไข
2015-04-25 08:12:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-25 08:11:52 By : New_User
 


 

No. 6



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



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


เงียบเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-25 17:04:55 By : New_User
 


 

No. 7



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



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


vb_newform

Code (VB.NET)
  Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
        Dim fm As New Form2
        If (fm.ShowDialog = Windows.Forms.DialogResult.OK) Then
            Me.TextBox5.Text = fm.ListView1.SelectedItems(0).Text  'รับค่ากลับ
        End If
    End Sub


ดูเป็นแนวทางแล้วกันน่ะ ตัวอย่างใช้ ListView


ประวัติการแก้ไข
2015-04-25 18:27:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-25 18:24:24 By : ipstarone
 


 

No. 8



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



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


ถ้าทำเป็น datagrid เพื่อให้เลือกได้หลายอันอย่างเช่นการทำ checkbox ไว้ในแต่ละแถว
จากนั้นเมื่อเราติ้กที่ checkbox ให้ datagrid2 ค้นหาข้อมูลมาแสดงโดยถึงค่าจาก row ของ datagrid1 ใช่ไหม

สมมุติว่า datagrid1 ดึงข้อมูลจากตาราง Order
และ datagrid2 ดึงข้อมูลจาก Order_Detail นะครับ

datagrid1 แสดงข้อมูลหลังจากค้นหามาแล้ว
Code (SQL)
select * 
from dbo.OrderData o 
where o.OrderId like '%aaaa%'  --aaa คือตัวแปรสตริงที่รับจาก textbox หรือ input ต่างๆ


เมื่อเราดักการเปลี่ยนแปลงที่ตัว checkbox แล้วอัพเดท datagrid2 ต่อ
Code (SQL)
select *
from dbo.OrderData_Detail od 
where od.OrderId in ('xxx','yyy') --xxx และ yyy คือ รหัสของ OrderData โดยรับค่าจาก datagrid1 ที่เลือกแล้วต่อสตริงเองใน vb ครับ


ถ้าอ่านโจทย์ไม่ผิด จขกท.ต้องการวิธีการดักอีเวนท์ตอนติ้ก checkbox ละมั้ง
พอจะช่วยได้แค่นี้แหละ -*-


ประวัติการแก้ไข
2015-04-25 18:59:51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-25 18:57:57 By : deksoke
 


 

No. 9



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



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


ความคิดเห็น No. 7 พี่ Progamon
ถ้าใช้ TextBox มันค้นหาทีละตัวอ่ะครับผมต้องการใช้ DataGridView ข้อมูลก็เหมือนตัวอย่าง
DataGridView
77

สมุติอยากรู้ว่าข้อมูล 5 ตัวนี้มีตัวไหนไม่มีในฐานข้อมูลบ้างต้องเอาข้อมูลใน DataGridView มาวนลูปอะไรยังไง ผมงง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 08:22:49 By : New_User
 


 

No. 10



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



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


ความคิดเห็น No. 8 พี่ Furikuri
ผมไม่ได้ต้องการจะเช็คอะไรเลยครับพี่ ผมต้องการใช้ DataGridView ข้อมูลก็เหมือนตัวอย่าง
DataGridView
77

สมุติอยากรู้ว่าข้อมูล 5 ตัวนี้มี พอกดค้นหาตัวไหนที่มีในฐานข้อมูล ก็ให้มาโชว์ที่ DataGridView2 ตัวไหนไม่มีก็แจ้งเตือนว่าไม่มีประมาณนี้ครับต้องเอาข้อมูลใน DataGridView มาวนลูปอะไรยังไง
ใช้DataGridView เป็นตัวค้นหาเพื่อโชว์ในDataGridView อีกอันอ่ะครับ
ผมงง VB ครับ


ประวัติการแก้ไข
2015-04-27 09:01:00
2015-04-27 09:02:12
2015-04-27 09:02:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 08:27:47 By : New_User
 


 

No. 11



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

จากที่อ่านๆแบบงงๆๆๆ ประมาณว่าเหมือนมันไม่ใช่การค้นหานะครับ
แค่แสดงข้อมูลแบบบ้านๆ แล้วก็เช็คของแค่นั้นเอง

database มีจำนวนปะละครับ อย่าง หนังสือ มี 10 เก้าอี้มี 0 ไรมาณนี้

หรือมีวิธีบอกป่ะละครับว่าตัวไหนมีไม่มี
เพราะให้มาแค่นี้คงยากเหมือนกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 11:39:12 By : lamaka.tor
 


 

No. 12



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



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


ความคิดเห็น No. 11 พี่ TOR_CHEMISTRY
คือเป็นการค้นหาเฉยๆครับประเด็นคือผมต้องการค้นหาข้อมูลหลายตัวพร้อมกันเฉยๆผมเลยใช้DataGridView เป็นตัวกรอกข้อมูลที่จะค้นหาเพราะถ้าใช้ TextBox มันใส่ได้ทีละตัวถ้ามี 5 ข้อมูลก็ต้องค้นหา 5 ทีแต่ใช้DataGridView มันค้นหาทีเดียว 5 ตัวได้เลย
ผมเลยอยากจะรู้ว่าโค้ต VB มันจะเขียนออกมาแบบไหนผมก็งงอยู่(ยังมือใหม่หัดเขียนครับ)
จากตัวอย่าง
เมื่อเรากรอกประเภทที่จะค้นหาแล้วเมือกดค้นหาที่ใช้ DataGridView 1 ข้อมูลตัวไหนที่มีข้อมูลในฐานข้อมูลก็จะโชว์ที่ ใช้DataGridView 2 ครับ

ะะ


ประวัติการแก้ไข
2015-04-27 12:53:26
2015-04-27 12:54:13
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 12:50:51 By : ์New_User
 


 

No. 13

Guest


หากคำถามคือจะค้นหาว่า ข้อมูฃลหลายๆตัวนั้นมีในตารางข้อมูลหรือเปล่า
มันหาได้หลายทาง ง่ายที่สุดก็วนลูปเอาทีละตัว
แต่ถ้าจะ check ทีเดียวหมดมันจะซับซ้อนอีกนิดหน่อย
เช่นสร้าง temporary table แล้ว insert ข้อมูลที่ต้องการตรวจลงไป
จากนั้นก็ join กัน ถ้าไม่มีจะมี field ของตารางหลักเป็น null
เคยๆ โพสกันหลายรอบหลายสมัยในบอร์ดนี้แล้วไปค้าดูนะครัช
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 12:53:08 By : DOG{B}
 


 

No. 14

Guest


ปล.อย่าไปยึดติดกับ ui หรือ control อะไรมากมาย
หา main solution ของปัญหาให้ได้ก่อน ค่อยเอาให้ ui รับค่ามา
อย่าง textbox นั่นใส่ ; คั่นระหว่างข้อมูลมันก็หาทีละหลายๆตัวได้ครัช
เห็นชัดๆก้ช่องกรอก email นั่น เวลาจะส่งมันส่งทีเดียวได้หลาย email ชิมิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 12:56:41 By : DOG{B}
 


 

No. 15



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



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


ถ้าผมใช้DataGridView เป็นตัวค้นหาผมจะเขียนคำสั่งให้มันวนลูปยังไงหรอครับ
หรือมีวิธีไหนบ้างที่จะค้นหาได้ทีละหลายๆตัวได้


ประวัติการแก้ไข
2015-04-27 13:00:16
2015-04-27 13:01:34
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 12:58:38 By : New_User
 


 

No. 16



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



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


อ่านตั้งนานเพิ่งจะเข้าใจ ง่ายๆเลยจะยกตัวอย่างให้เห็นภาพที่สุดละกัน

เปรียบเสมือนคุณไปค้นหาสินค้าในเว็บขายของออนไลน์ มันจะแยกหมวดหมู่ว่า "โทรศัพท์", "รถยนต์", "เครื่องใช้ไฟฟ้า" ฯลฯ
คุณต้องการเลือกหมวดหลายๆหมวดแล้วพอกดค้นหาก็ให้สินค้าในหมวดที่เลือกแสดงขึ้นมาพร้อมกัน

อันดับแรก
คุณต้องวนลูปเก็บรหัสของหมวดหมู่ที่อยู่ใน DataGrid1 มาก่อนครับ
เมื่อ Datasource เป็น DataTable ก็วนลูปด้วย For หรือ For Each เช่น
Code (VB.NET)
dim simpleString as string = ""
For i as integer = 0 To dtGrid1.Rows.Count - 1
   dim dr as datarow = dtGrid1.Rows(i)
   simpleString &= dr("ID") & IIF(dtGrid1.Rows.Count -1 = i,"",",")
Next

'เมื่อวนลูปเสร็จแล้วจะได้ข้อมูลประมาณนี้
'simpleString = "2,5,65,121"

dim sqlQuery as string = "select * from Order_Detail od where od.OrderId in (" & simpleString ")"
'แล้วส่งคิวรีนี้ไปดึงข้อมูลจากฐานข้อมูลครับ


ให้ศึกษาพวก For Loop, While Loop ไว้ครับ
สบายแน่นอน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-27 14:38:30 By : deksoke
 


 

No. 17



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



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


ความคิดเห็น No. 16 พี่Furikuri
ใช่แล้วครับผมแค่ต้องการ อย่างนี้แหละเดี๋ยวผมลองทำก่อนนะครับได้ผลไงจะมารายงาน
ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-28 08:22:14 By : New_User
 


 

No. 18



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



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


พี่ Furikuri
คือมันไม่ได้อ่ะครับมันError ตามตัวอย่างครับพอจะอธิบายได้ไหมครับผมไม่ค่อยจะเข้าใจเท่าไหร่เหมือนมันข้อมูลคนละประเภท หรือป่าวมั่วงง
ีีีี

ขอบคุณครับ


ประวัติการแก้ไข
2015-04-29 09:43:29
2015-04-29 09:46:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-29 09:39:56 By : New_User
 


 

No. 19



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



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



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-04-30 16:24:08 By : New_User
 


 

No. 20



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



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


มีไหมหน้อเงียบเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-05-02 08:12:04 By : New_User
 


 

No. 21



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



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


ช่วยทีครับมันขั้นแบบนี้แก้ยังไงครับมันไม่มีค่ามาให้แต่select ในฐานข้อมูลก็มีนะครับ

123456


ประวัติการแก้ไข
2015-05-02 13:24:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-05-02 10:00:12 By : ์New_User
 


 

No. 22



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



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


ลืมมาให้คำตอบใช้แบบนี้ได้แน่นอนครับ
Code (VB.NET)
 Dim simpleString As String = ""
            simpleString &= "("
            For r = 0 To dtGrid1.RowCount - 1
                simpleString &= "'" & dtGrid1.Rows(r).Cells(0).Value & "'"
                If r <> dtGrid1.RowCount - 1 Then
                    simpleString &= ","
                End If
            Next
            simpleString &= ")"

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-31 15:53:54 By : ืNew_User
 


 

No. 23

Guest


Quote:
ลืมมาให้คำตอบใช้แบบนี้ได้แน่นอนครับ 2015-04-21 14:39:52 - 2016-10-31 15:53:54


ลืมได้ก็ดีเหมือนกันครับ

Code (VB.NET)
Dim simpleString = "(" & String.Join("", (From r As DataGridViewRow In dtGrid1.Rows
                         Where Not r.IsNewRow
                         Select "'" & r.Cells(0).Value & "',")).TrimEnd(",") & ")"

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-31 20:33:24 By : หน้าฮี
 


 

No. 24

Guest


จาก #NO 23 ควรจะดักค่า DBNull.Value หรือ Nothing ด้วย

อันนี้เขียนให้ดูเล่นฯ (สำหรับผมง่ายพอฯกับหายใจเข้าและหายใจออก)
--- ครอบคลุมในทุกฯกรณี


Code (VB.NET)
Dim simpleString = "(" & String.Join("", (From r As DataGridViewRow In dtGrid1.Rows
                         Where Not r.IsNewRow
                         Select "'" & String.Format("{0}",r.Cells(0).Value).Trim() & "',")).TrimEnd(",") & ")"



+55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-10-31 20:44:55 By : หน้าฮี
 


 

No. 25



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



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


string sql = "select F_Code,F_Name,CategoryFood_Tb.CF_CategoryFood,F_Price,F_image From (Food_Tb inner join CategoryFood_Tb on Food_Tb.[CF_Type]=CategoryFood_Tb.[CF_Type]) WHERE F_Code LIKE '" + txt_Fsearch.Text + "%' OR F_Name LIKE '" + txt_Fsearch.Text + "%'";

ดูตรงส่วน sql ใช้ คล้ายกัน ครับ ค้น หาตัวเลบ กับ ชื่อนำ น่า ได้สองอย่าง พร้อมกัน


SqlCommand cmd = new SqlCommand(sql, con);
con.Open();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);

dataGridView1.DataSource = dt;
con.Close();
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-19 16:31:23 By : poonzacafe
 

   

ค้นหาข้อมูล


   
 

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