none
vb2005中存储过程怎么写? RRS feed

  • 问题

  • 假如用sql语句,button的事件如下:
    Private Sub btnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind.Click
    Dim con As SqlConnection = New SqlConnection(constr)
    con.Open()
    Dim Content As String = Trim(Me.txtContent.Text)
    Dim sqlstr As String = "select CardCode,CardName from Card where CardCode like '%" + Content + "%' or CardName like '%" + Content + "%'"
    Dim ds As DataSet = New DataSet
    Dim adp As SqlDataAdapter = New SqlDataAdapter(sqlstr, constr)
    adp.Fill(ds, "Card")
    Me.dgvFindCard.DataSource = ds.Tables(0)
    con.Close()
    End Sub
    我的存储过程如下:
    create proc FindCard
    @Content varchar(100)
    as
    begin
    select CardCode,CardName from Card where CardCode like '%'+@Content+'%' or CardName like '%'+@Content+'%'
    end
    go
    那么button的事件该怎么写?我知道Dim sqlstr As String = "exec FindCard"
    那么adp.Fill(ds, "Card")这句该怎么写?

    2008年11月6日 8:34

答案

  • Code Snippet

    adp.SelectCommand.Parameters.Add( _
            "@Content", SqlDbType.VarChar, 100).Value = Content

     

    adp.Fill(ds, "Card")

     

     

     

    2008年11月6日 9:14
    版主

全部回复

  • Code Snippet

    adp.SelectCommand.Parameters.Add( _
            "@Content", SqlDbType.VarChar, 100).Value = Content

     

    adp.Fill(ds, "Card")

     

     

     

    2008年11月6日 9:14
    版主
  • 用Command
            Dim myCommand As New SqlClient.SqlCommand
            myCommand.CommandType = CommandType.StoredProcedure
            myCommand.CommandText = ProcName
            myCommand.Connection = myConn
            '定义一个数据适配器,并设置参数
            Dim myDapter As New SqlClient.SqlDataAdapter(myCommand)
            myDapter.SelectCommand.Parameters.Add("@name", SqlDbType.VarChar, 20).Value = Param1
            '定义一个数据集对象,并填充数据集
            Dim myDataSet As New DataSet
            Try
                myDapter.Fill(myDataSet)
            Catch ex As Exception
            End Try
            Return myDataSet
    2008年11月6日 10:16
  • 出现错误,需要new,该怎么改?

     

    2008年11月7日 1:14
  • 代码和错误?

    2008年11月7日 3:29
    版主
  •  

    版主,在 adp.SelectCommand.Parameters.Add("@Content", SqlDbType.VarChar, 100).Value = Content 处出现如下错误:未将对象引用设置到对象的实例。我的代码是:

        Private Sub btnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind.Click
            Dim con As SqlConnection = New SqlConnection(constr)
            con.Open()
            Dim Content As String = Trim(txtContent.Text)
            Dim adp As SqlDataAdapter = New SqlDataAdapter
            adp.SelectCommand.Parameters.Add("@Content", SqlDbType.VarChar, 100).Value = Content
            Dim ds As DataSet = New DataSet
            adp.Fill(ds, "Card")
            Me.dgvFindCard.DataSource = ds.Tables(0)
            con.Close()
        End Sub

    2008年11月7日 4:09
  • 未将对象引用设置到对象的实例

    Code Snippet

    Dim adp As SqlDataAdapter = New SqlDataAdapter("FindCard ",con)

     

     

    2008年11月7日 4:24
    版主
  •  

    版主,在adp.Fill(ds, "Card")处出现第 1 行: 'FindCard' 附近有语法错误。
    2008年11月7日 6:14
  • Code Snippet

    adp.SelectCommand.CommandType = CommandType.StoredProcedure

     

     

    2008年11月7日 8:46
    版主