2012-10-19 2 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

무엇'데이터베이스' 제품 있습니까? 'rough' SqlDataSource 컨트롤 대신'Provider' API를 사용해야합니다. – adatapost

+1

당신은 GridView와 같은 databound 컨트롤에 바인딩하지 않는다는 것을 의미합니까? – 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을 호출 할 때 저장 프로 시저가 실행 사용하여 호출합니다. DataBind 메서드는 GridView 컨트롤의 DataSourceID 속성이 유효한 데이터 소스 컨트롤을 가리키는 경우 자동으로 호출됩니다.

+0

무엇이'spTest'입니까? – SearchForKnowledge

+0

'spTest'는 실행할 저장 프로 시저의 이름입니다. – nunespascal

+0

하지만 C#에서 SQL 명령, 연결 등을 다시 정의하지 않고 sqldatasource에 대한 코드를 매개 변수로 전달하려면 어떻게해야합니까? 나는 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

의 SqlDataSource에서 SP를 초기화하기 쉽습니다 :

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

이 SP에서 반환 값을 얻으려면, 내가하는 SqlCommand를 사용하는 것이 좋습니다 것입니다 :

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

것이 확인 ParameterDirection 매개 변수가 ReturnValue 또는 Output으로 설정된 경우

관련 문제