1

データベースでストアド プロシージャを呼び出す C# ASP.NET ページを作成しています。

SqlDataSourceストアド プロシージャを指すa をセットアップしました。パラメーターは Web のコントロールから直接取得されます (TextBox)

ボタンがあり、ユーザーがクリックするとストアド プロシージャが実行されるので、次のようなコードを追加します。

mySqlDataSource.run()

また

mySqlDataSource.exec()

また

mySqlDataSource.storedProcedure()

しかしもちろん、これらの方法はどれも存在しません。

ストアド プロシージャを初期化するにはどうすればよいですか? ストアドプロシージャから返された値を取得するにはどうすればよいですか?

ありがとうございました!

4

3 に答える 3

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 メソッドが自動的に呼び出されます。

于 2012-10-19T04:02:40.563 に答える
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();
    }
于 2012-10-19T04:12:15.963 に答える
0

sqldatasource から SP を初期化するのは簡単です。

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

SP から戻り値を取得するには、SqlCommand を使用することをお勧めします。

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

ParameterDirection を ReturnValue または Output に設定して作成されたパラメーターがあることを確認してください。

于 2012-10-19T05:02:31.730 に答える