积极答复者
vb2005中存储过程怎么写?

问题
-
假如用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")这句该怎么写?
答案
全部回复
-
用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 -
版主,在 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