2012-10-19 43 views
1

我正在構建一個C#ASP.NET頁面,我想調用數據庫中的存儲過程。在SqlDataSource的按鈕上運行存儲過程點擊

我已經設置了一個指向存儲過程的SqlDataSource。參數從網絡的控制直接(文本框)

我有一個按鈕,當用戶點擊它,它應該運行存儲過程獲得的,所以我要加入這樣的代碼:

mySqlDataSource.run() 

mySqlDataSource.exec() 

mySqlDataSource.storedProcedure() 

當然沒有這些方法前的,但IST。

如何初始化存儲過程?以及如何獲取存儲過程返回的值?

謝謝!

+0

嘗試'mySqlDa taSource.Select()'。 [SqlDataSource.Select方法](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.select%28v=vs.100%29.aspx) – Tim

+0

什麼'數據庫'產品你有嗎?您應該使用'Provider' API來代替'粗糙'SqlDataSource控件。 – adatapost

+1

你的意思是你沒有綁定到GridView等任何數據綁定控件? – codingbiz

回答

11

我認爲你正在尋找的方法是DataBind。使用mySqlDataSource.DataBind()

<asp:SqlDataSource 
    ID="sds2" 
    runat="server" 
    ConnectionString="..." 
    SelectCommand="spTest"  
    SelectCommandType="StoredProcedure" 
    > 
    <SelectParameters> 
    <asp:ControlParameter ControlID="TextBox1" PropertyName="Text" 
           Name="ParamName" Type="Int32" DefaultValue="0" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
<asp:GridView ID="gv" runat="server" DataSourceID="sds2"></asp:GridView> 

,當你調用DataBind執行存儲過程調用它。如果GridView控件的DataSourceID屬性引用了有效的數據源控件,則會自動調用DataBind方法。

+0

什麼是spTest' – SearchForKnowledge

+0

spTest是要執行的存儲過程的名稱。 – nunespascal

+0

但是,如果您想將代碼中的參數傳遞給sqldatasource而不重新定義C#中的SQL命令,連接等,該怎麼辦?我希望得到像mySqlDataSource.Select(wsMyParmsHere)這樣的答案; – Fandango68

1
//HTML: 

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
     onselecting="SqlDataSource1_Selecting" SelectCommand="testProc_sp" 
     SelectCommandType="StoredProcedure"></asp:SqlDataSource> 
    <br /> 
    <asp:Button ID="Button3" runat="server" onclick="Button3_Click" Text="Button" /> 



//c#: 

protected void Button3_Click(object sender, EventArgs e) 
    { 
     SqlDataSource1.DataBind(); 
    } 
0

至Init,從SqlDataSource的一個SP很簡單:

mySqlDataSource.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure; 
mySqlDataSource.UpdateCommand = "sp_name"; 
mySqlDataSource.Update(); 

要從SP得到一個返回值,我會建議使用的SqlCommand:

http://forums.asp.net/t/1177022.aspx

確保你有一個參數創建ParameterDirection設置爲ReturnValue或輸出