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 > C# สอบถามวิธี exec Procedure แล้วเอาข้อมูลไปใส่ใน dataGridView ครับ ปกติใช้ SqlCommand("SELECT * FROM TABLE") ไม่เคยใช้ SqlCommand("exec Procedure")



 

C# สอบถามวิธี exec Procedure แล้วเอาข้อมูลไปใส่ใน dataGridView ครับ ปกติใช้ SqlCommand("SELECT * FROM TABLE") ไม่เคยใช้ SqlCommand("exec Procedure")

 



Topic : 126278



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



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




ปกติใช้ SqlCommand("SELECT * FROM TABLE") ไม่เคยใช้ SqlCommand("exec Procedure")
ผมลอง Query: exec dbo.TC_SearchItem 'water','hot' ก็ผ่านนะครับ ข้อมูลออก

ปกติทำแบบนี้ครับ ข้อมูลที่ SELECT เอาไปใส่ใน dataGridView
Code (C#)
using (cmd = new SqlCommand("SELECT * FROM ITEMS", conn)) { }
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
  da.SelectCommand = cmd;
  DataTable dt = new DataTable();
  da.Fill(dt);
  if (dt.Rows.Count > 0)
  {
     Item_dataGridView.DataSource = dt;
  }
}


และก็เคยแต่ Insert, Delete อะไรพวกนี้ ที่ไม่ใช่เอาออกมาแสดงผล ทำแล้วจบไปเลย
Code (C#)
using (cmd = new SqlCommand("exec dbo.InsertInvoice '" + DOC + "','" + Value + "'", conn)) { }
cmd.ExecuteNonQuery();


แต่ถ้าเปลี่ยนจาก SELECT เป็น exec Procedure ทำยังไงหรอครับ
โดยไม่ใช้วิธีนี้นะครับ
using (cmd = new SqlCommand("SELECT * FROM ITEMS WHERE Items = 'water' AND type = 'hot' ", conn)) { }


Code (C#)
//
using (cmd = new SqlCommand("exec dbo.TC_SearchItem 'water','hot' ", conn)) { }
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
  da.SelectCommand = cmd;
  DataTable dt = new DataTable();
  da.Fill(dt); //ติด Error ตรงนี้ 
  if (dt.Rows.Count > 0)
  {
     Item_dataGridView.DataSource = dt;
  }
}



Code (Procedure)
ALTER PROCEDURE [dbo].[TC_SearchItem] @Items as nvarchar(MAX), @Type as varchar(50) AS SELECT * FROM ITEMS WHERE Items = @Items AND type = @type




Tag : .NET, Ms SQL Server 2008, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-02-06 16:18:02 By : nPointXer View : 799 Reply : 10
 

 

No. 1



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

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

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

มีหลายแบบเลยครับ

Visual C# (C# .Net) เรียกใช้ EXEC/CALL - SQL Server Stored Procedure







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 11:32:09 By : mr.win
 


 

No. 2



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

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

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

หลายครั้งผมใช้แบบ JSON ครับ

Query ข้อมูลจาก SQL Server เป็น JSON และการ Deserialize (Decode

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 11:33:16 By : mr.win
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2017-02-07 11:32:09
รายละเอียดของการตอบ ::
ยังไม่ได้ครับพี่วิน ขึ้นแบบนี้
ของผม C# Windows Forms Application ไม่ทราบว่าใช้ Code เดียวกับพี่วิน จะมีปัญหาอะไรไหมครับ
ห

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 15:32:39 By : nPointXer
 


 

No. 4



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



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

ผมใช้วิธีแบบบ้านๆ ไม่แตะที่ MS SQL

แต่มาเล่นใน Dataset แทน โดยใส่ Parameter ครับ

https://www.thaicreate.com/community/csharp-add-query-parameter-in-wizard-ban-ban.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 15:55:24 By : lamaka.tor
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-02-07 15:55:24
รายละเอียดของการตอบ ::
ขอบคุณครับ เหมือนจะต้องไปทำเยอะครับ ฮ๋า ๆ ไม่ค่อยเก่งวิธีนี้

ยัง งงๆ
- ถ้ามีเงื่อนไข จะทำได้ไหม เช่น
IF LEN(@vSearch) > 0 AND LEN(@vSearch) < 3
BEGIN
......
AND 


- เราแก้ code ตรงนี้เลยได้ไหม หรือต้องไปลากเชื่อมตารางเอง เลือก Cloumn ที่จะนำไปใช้อย่างเดียว
k

- ถ้าเชื่อมกับฐานข้อมูลอื่น ที่ปกติเราใช้คำสั่ง OPENQUERY ในการเชื่อมหน่ะครับ แบบนี้ทำได้ไหม

ปล. สาเหตุที่อยากทำแบบ Procedure ก็เพราะว่า เวลาแก้ Code ผมไม่ต้องไปแก้ในตัวโปรแกรม ไม่ต้องบิ้วใหม่ คือเข้าไปแก้ Procedure อย่างเดียวก็น่าจะง่ายกว่า เลยอยากทำแบบนั้น ถ้าไม่ได้จริงๆก็คงทำรูปแบบที่ผมใส่สีแดงไว้ในโพสบนสุดครับ T__T

แก้ไขรูปให้เล็กลง



ประวัติการแก้ไข
2017-02-07 16:41:12
2017-02-07 16:44:52
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 16:38:25 By : nPointXer
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : nPointXer เมื่อวันที่ 2017-02-07 16:38:25
รายละเอียดของการตอบ ::
-ถ้ามีเงื่อนไข
** ผมว่าทำได้นะครับ

-เราแก้ code ตรงนี้เลยได้ไหม
** ได้ครับ เพิ่มตาราง จาก sql ได้ แต่เพิ่มแล้วต้อง join เองนะครับ แต่ถ้าลากตารางมาลง มันจะ join ให้เลย ครับ

-สาเหตุที่อยากทำแบบ Procedure ก็เพราะว่า เวลาแก้ Code ผมไม่ต้องไปแก้ในตัวโปรแกรม
** ตัวนี้เป็นข้อเสียครับ(ทำไม่ได้) ผมเน้นออกแบบ database ให้ดีๆก่อน ค่อยมาเขียนโค้ดครับ
** บางทีต้องเสียเวลาเป็นวัน อย่าง uncertainty ผมใช้เวลาออกแบบเกือบวัน ค่อยมาลงโค้ด ครับ


ปล. ผมเคยลองเขียน SQL ไว้ข้างนอก แล้วเรียกใช้แบบใส่ paramater ก็ได้อยู่นะครับ ใน ไฟล์ .Designer.cs จะมีโค้ดอยู่
ผมเอาโค้ดนั้นไปดัดแปลงลงใน ไฟล์ txt(ดันจำไม่ได้ว่าเก็บไว้ไหนอีก)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 17:03:18 By : lamaka.tor
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : lamaka.tor เมื่อวันที่ 2017-02-07 17:03:18
รายละเอียดของการตอบ ::
ออกแบบดีแล้วแต่ user เพิ่ม requirement นี่ซิครับ เพิ่มเงื่อนไขนี่ ลำบากผมเลย ปฎิเสธไม่ได้ด้วย มันหน้าที่ผม T____T


ส่วนวิธีที่บอกว่า "เขียน SQL ไว้ข้างนอก แล้วเรียกใช้แบบใส่ paramater ก็ได้อยู่นะครับ ใน ไฟล์ .Designer.cs จะมีโค้ดอยู่" ยังไงหรอครับ ฟังดูน่าสนใจดี อาจจะไม่เกี่ยวกับโพสที่ถาม แต่เผื่อเอาไปประยุกต์ใช้กับเหตุการณ์อื่นๆครับ ผมไม่รบกวนมากแล้วกัน พอจะมีหัวข้อให้เซิร์ทหาความรู้ในเรื่องนี้ไหมครับ เขาเรียกว่าอะไร เดี๋ยวผมลองไปศึกษาดูเองก็ได้ครับ



สำหรับวิธี EXEC/CALL - SQL Server Stored Procedure ผมยังอยากทราบคำตอบอยู่นะครับ ท่านใดพอจะทราบ Error ที่เกิดขึ้นหรือมีวิธีอื่นๆลองแนะนำมาได้ครับ

ประเด็นผมคือ ผมไม่อยากไปแก้ Code Query ในโปรแกรม หลังจากบิ้วไฟล์ไปแล้ว เลยหาวิธีนี้มาใช้ คิดว่าน่าจะตอบโจทย์ผมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 17:27:23 By : nPointXer
 


 

No. 8



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



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


ทำได้แล้วครับ ด้วยความโง่ของผมเอง ตั้งชื่อ DATABASE คล้ายกัน ต่างกันที่ตัวเลขด้านหลัง 1,2 ไปสร้าง Procedure ไว้ DATABASE2 แล้วเทสโปรแกรมที่ DATABASE1 แค่นั้นเลยครับ สำหรับคำสั่งก็โพสด้านบนสุดของผมนั่นแหละครับ ... พอตั้งสติลองดูทีละอย่างๆ มันก็ถึงบางอ้อเองครับ (ตอนแรกทำไม่ได้หัวร้อนเลย )


ปิดกระทู้ครับ อายจุง ><

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 18:02:31 By : nPointXer
 


 

No. 9



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



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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-07 20:06:54 By : lamaka.tor
 


 

No. 10



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

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-02-08 10:05:50 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# สอบถามวิธี exec Procedure แล้วเอาข้อมูลไปใส่ใน dataGridView ครับ ปกติใช้ SqlCommand("SELECT * FROM TABLE") ไม่เคยใช้ SqlCommand("exec Procedure")
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่