none
Stored Procedure傳回資料列在.NET程式中接收的問題 RRS feed

  • 問題

  •  

    請教各位前輩:

    假如有一個stored procedure是:

    Create Procedure GetPeople

    @PeopleAge NVARCHAR(30)

    Begin

    Select * FROM People Where Age=@PeopleAge

    End

     

    該Stored Procedure會傳回多列資料...

     

    目前我在.NET程式中是這樣接收資料

     

    Dim SQLStr As String = "EXEC GetPeople '18'"

    Dim objSqlConnection As SqlConnection = New SqlConnection(ConnectionString)
    objSqlConnection.Open()

    Dim objSqlDataAdapter As SqlDataAdapter = New SqlDataAdapter(SQLStr, objSqlConnection)

    Dim objDataSet As DataSet = New DataSet()

    objSqlDataAdapter.Fill(objDataSet)
    objSqlConnection.Close()

     

    不過這樣寫好像滿怪的

    因為必須用EXEC GetPeople '18'這種寫法

    想請問有別的寫法嗎

    2008年2月20日 上午 07:41

解答

  • ....

     

    前面不是你也問很多這方面的問題嗎?

    其中不是也告訴你 Parameterized Query 的方法了?

    Code Snippet

     

    Dim SQLStr As String = "GetPeople"

    Dim objSqlConnection As SqlConnection = New SqlConnection(ConnectionString)
    objSqlConnection.Open()

    Dim objSqlDataAdapter As SqlDataAdapter = New SqlDataAdapter(SQLStr, objSqlConnection)

    Dim objDataSet As DataSet = New DataSet()

     

    objSqlDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure

    objSqlDataAdapter.SelectCommand.Parameters.Add("@age", 18);

     

    objSqlDataAdapter.Fill(objDataSet)
    objSqlConnection.Close()

     

     

     

     

    2008年2月20日 上午 09:08
    版主