![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 阿弦 ![]()
![]() |
各位高手們大家好, 我目前使用asp.net 去呼叫MS SQL的stored procedure(以下簡稱SP), 我的網頁上有一個下拉選單,裡面有三個項目可多選(選單選項: 商品A、商品B、商品C) 我的MS SQL有個Table叫Production,有一個欄位是ProductionName,裡面就是存下拉選單的名字。 我目前的作法是,在網頁上把下拉選單所選的項目先用C#串好一個SQL語法 語法如下: where ProductionName = '商品A' OR productionName = '商品B' (當然這語法不是固定的,是要看選了哪些項目SQL語法會跟著有不同變化) 然後我將這段SQL字串當作參數送到SP裡, 我在SP裡面寫了以下語法 以上做法是用字串去串出一個sql語法,然後再執行那組字串 我的問題是: 我想要改sp變成不是用字串的方式去組出一個sql語法, 我想要這個sp可以直接執行,不用再去EXEC sp_executesql @cmd 請問我該怎麼做呢? 懇請各位大大能夠幫忙解惑了,感激不盡~~~Orz |
1樓 |
ALTER PROCEDURE [dbo].[GetProductionInformation]
@變數 VARCHAR(MAX) AS select 你要的欄位 from Production where 欄位=@變數 --asp.net 前端 exec [GetProductionInformation] @變數 <====餵變數 下面是範例 Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim sql As String = "exec proc_業務獎金明細 '" + Me.TextBox1.Text + "','" + Me.TextBox2.Text + "','" + Me.Label1.Text + "','" + Me.Label2.Text + "'" Dim dt As DataTable = db.getdt(sql) Me.ASPxGridView1.DataSource = dt Me.ASPxGridView1.DataBind() End Sub
本篇文章回覆於2016-08-10 15:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |