C# - ชุดข้อมูลการสืบค้นหลายรายการ

ฉันต้องการสร้างชุดข้อมูลที่มีการสืบค้นหลายรายการ จากนั้นเพิ่มแถวที่ชุดข้อมูลส่งคืนไปยังกล่องรายการ นี่คือสิ่งที่ฉันมีจนถึงตอนนี้ SqlCommand ของฉันมีหลายแบบสอบถาม ฉันต้องการเพิ่มแต่ละค่าจากการสืบค้นไปยังชุดข้อมูล จากนั้นสร้างคำสั่ง foreach เพื่อรับแถวทั้งหมดจากชุดข้อมูลลงใน listbox

        SqlConnection con = new SqlConnection(connection);
        SqlCommand command = new SqlCommand("select ProductID AS ProductID from Products; Select CategoryName AS CategoryName from Categories; Select count(*) AS Total from Products", con);

        SqlDataAdapter sda = new SqlDataAdapter(command);

        DataSet set = new DataSet();           

        sda.Fill(set);

Enyone มีความคิดที่ฉันจะทำเช่นนั้นได้อย่างไร? ขอบคุณมากล่วงหน้า


person Alan_C    schedule 04.04.2011    source แหล่งที่มา
comment
แบบสอบถามมีรูปแบบผลลัพธ์เหมือนกัน (ชื่อและประเภทคอลัมน์) หรือไม่   -  person Kieren Johnstone    schedule 04.04.2011
comment
ไม่มีแต่ละคนมีชื่อและประเภทของตัวเอง ฉันควรเพิ่มคอลัมน์ลงในแบบสอบถาม   -  person Alan_C    schedule 04.04.2011


คำตอบ (1)


อย่างที่ฉันเห็น คุณกำลังสร้างกล่องรายการที่มีข้อมูล 3 รายการที่แตกต่างกันมาก รหัสผลิตภัณฑ์บางส่วน ชื่อหมวดหมู่บางรายการ และจำนวนผลิตภัณฑ์ มันทำให้ฉันสับสนเล็กน้อย อย่างไรก็ตาม.

ตัวอย่างเช่น หากคุณต้องการให้ผลิตภัณฑ์และหมวดหมู่อยู่ในกล่องรายการเดียวกัน คุณก็สามารถทำได้

    select productname as dataname from products 
union 
select categoryname as dataname from categories
person BugFinder    schedule 04.04.2011
comment
ขออภัยที่ทำให้สับสน ฉันต้องการแสดงรายการแถวทั้งหมดในกล่องรายการเดียวกัน ไม่ใช่กล่องรายการที่แตกต่างกัน - person Alan_C; 04.04.2011
comment
นั่นคือสิ่งที่ข้างต้นทำ โดยจะนำชื่อผลิตภัณฑ์และชื่อหมวดหมู่ทั้งหมดมาส่งคืนเป็น 1 รายการ ฉันรู้ว่ามันไม่ใช่กล่องรายการที่แตกต่างกัน ซึ่งเป็นสาเหตุที่ PID ที่เป็นตัวเลขและจำนวนผลิตภัณฑ์บางส่วนดูเหมือนจะไม่อยู่ในกล่องรายการเดียวกัน - person BugFinder; 04.04.2011
comment
@BugFinder: เมื่อฉันเพิ่มคำสั่งสหภาพลงในโค้ดของฉันเหมือนกับของคุณ มันใช้ไม่ได้สำหรับผู้ชาย ฉันจะได้รับ ProductName ในกล่องรายการของฉันเท่านั้น - person Alan_C; 04.04.2011
comment
คุณต้องมีข้อมูลทั้ง 3 ประเภทให้เหมือนกัน ซึ่งการนับ (*) ส่งคืนจำนวนเต็มโดยที่ชื่อหมวดหมู่แน่นอนคือสตริง .. ดังนั้นฉันยังคงสงสัยว่าทำไมคุณถึงต้องการกล่องรายการของรายการเหล่านั้นรวมกัน .. - person BugFinder; 04.04.2011
comment
@BugFinder: ฉันจะสร้างรายงาน HTML ตามรายการเหล่านี้ - person Alan_C; 04.04.2011
comment
ตกลง ถ้าข้อมูลของคุณถูกส่งคืน { 101,233,6728,Shoes, Drills, Cakes, 238 } คุณจะใช้มันอย่างไร แน่นอนว่าคุณต้องการรับรหัสผลิตภัณฑ์ ทำส่วนนั้นของรายงาน รับหมวดหมู่ ทำส่วนนั้น แล้วแสดงจำนวนผลิตภัณฑ์ .. หรือคุณกำลังพยายามทำบางอย่างมากกว่าที่แสดงในแบบสอบถามเดิมของคุณ เช่น คุณต้องการทราบรหัสผลิตภัณฑ์แต่ละรายการ หมวดหมู่ที่อยู่ในนั้น และจำนวนผลิตภัณฑ์อื่นๆ ที่อยู่ในแต่ละหมวดหมู่เหล่านั้น - person BugFinder; 04.04.2011
comment
@BugFinder: ฉันต้องการแสดงข้อมูลทั้งหมดในรายงานเดียวกัน ในรายงาน ฉันมีส่วนที่แตกต่างกันสำหรับการค้นหาแต่ละครั้ง ส่วนที่หนึ่งคือส่วนที่ฉันแสดงข้อมูลเกี่ยวกับผลิตภัณฑ์ ส่วนที่สองคือส่วนที่ฉันแสดงข้อมูลเกี่ยวกับหมวดหมู่ และส่วนที่สามคือส่วนที่ฉันแสดงจำนวนผลิตภัณฑ์ที่ฉันมีในตารางผลิตภัณฑ์ของฉัน - person Alan_C; 04.04.2011
comment
จากนั้นใช้คำถามแยกกัน 3 ข้อ คุณจะทำให้ชีวิตของคุณลำบากมากถ้าคุณไม่ทำ เรียกใช้แต่ละส่วนตามลำดับสำหรับ 3 ส่วนที่คุณต้องการ - person BugFinder; 04.04.2011
comment
@BugFinder: นี่คือ ReportSource ของฉันรับหนึ่งชุดข้อมูล หากใช้แบบสอบถามแยกกัน 3 ข้อ ฉันจะไม่มีข้อมูลทั้งหมดในรายงานเดียวกัน ฉันสามารถสร้างรายงานที่แตกต่างกันสำหรับการค้นหาแต่ละรายการได้ แต่ฉันต้องการข้อมูลทั้งหมดในรายงานเดียวกัน - person Alan_C; 04.04.2011
comment
เอาล่ะ ฉันกลับไปที่คำถาม หากคุณมี { 101,233,6728,Shoes, Drills, Cakes, 238 } เป็นข้อมูลของคุณ รายงานของคุณจะไม่รู้ว่าสิ่งต่างๆ หยุดอยู่ที่ไหนและสิ่งใหม่ๆ เริ่มต้นขึ้นที่ใด ฉันจะถอยออกจากเรื่องนี้ เพราะเห็นได้ชัดว่าฉันไม่สามารถเสนอวิธีแก้ปัญหาได้ - person BugFinder; 04.04.2011