1

クエリを実行して Web フォーム経由で結果を表示するのに苦労しています。パラメータを使用して値をストアド プロシージャに渡しますが、@status 値が設定されていますが、sp によって取得されていないように見えるため、結果は返されません。私の Vb はかなり制限されており、そこに問題があると思われます。

SQLは次のとおりです。

ALTER proc [dbo].[get_status_times]

@status nvarchar
as

select project_code, activity_code, project_date, project_time from 
timesheet where status = @status

そしてVB

Sub detailsClicked(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles listweekstatus.ItemCommand
    Dim wccolumn As TableCell = e.Item.Cells(0)
    '  Dim timeColumn As TableCell = e.Item.Cells(1)
    Dim statusColumn As TableCell = e.Item.Cells(2)
    ' Dim buttonColumn As TableCell = e.Item.Cells(3)


    Dim wccoltext As DateTime = wccolumn.Text
    ' Dim timeColText As String = timeColumn.Text
    Dim statusColText As String = statusColumn.Text
    ' Dim buttonColText As String = buttonColumn.Text

    Dim myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("chronosdb").ConnectionString)

    Const strSQL As String = "get_status_times"
    Dim myCommand As New SqlCommand(strSQL, myConnection)


    myCommand.CommandType = CommandType.StoredProcedure


    myCommand.Parameters.Add("@status", SqlDbType.NVarChar)
    myCommand.Parameters("@status").Value = statusColText
    myCommand.Parameters("@status").Direction = ParameterDirection.Input

    'Set the datagrid's datasource to the datareader and databind
    myConnection.Open()
    weekdetails.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
    weekdetails.DataBind()


End Sub

どんな助けでも感謝します。

4

1 に答える 1

2

proc でパラメーター宣言を変更してみてください。

@status nvarchar(200) --For example

既存の宣言は、入力を最初の文字にトリミングします。

たとえば、次のコード:

create proc paramtest (@param nvarchar)
as
begin
select @param
end
go

exec paramtest 'foobar'

選択するだけf

于 2012-06-29T22:50:50.137 に答える