十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
执行存储过程调用的是ADO.net
10年积累的成都网站制作、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有蒙城免费网站建设让你可以放心的选择与我们合作。
返回的结果集是一个DataSet对象。 如果不是,请检查下你的数据连接库,改下代码。
如果存储过程返回的是两个结果集,那么返回的DataSet就有两个DataTable对象。
调用的时候 只需要
DataSet ds=dbHelper.RunProcedure("Web_pGetDataPager");//假设的返回dataset对象的执行存储过程的方法。
ds.Tables[0] 就是第一个结果集
ds.Tables[1] 就是第二个结果集
//弱绑定第二个结果集 就是下面这样
Datagridview.DataSource=ds.Table[1];
Datagridview.DataBind();
你上面的报错是不是类似“连接已经打开”或者“连接已经关闭”之类?有可能是你说的原因,SqlConnection最好不要写成全局的变量,应该在每个调用的地方重新new,最好用using结构来声明。
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "proc name"
'参数名可以任意,但最好与存储过程的return一致
'默认值随便写
Dim ret As New SqlParameter("ret", 0)
'返回值类型才有下面一句
ret.Direction = ParameterDirection.ReturnValue
cmd.Parameters.Add(ret)
'其他的参数和一般的sql语句没区别
'...
cmd.ExecuteNonQuery()
'得到了ret
//存储过程代码
CREATE PROCEDURE [AddNewInvoiceInfo] (@sUserID int,@sClaimMethod varchar(50),@sInvoiceNum varchar(50),@sInvoiceDate datetime,@sBuyCity varchar(50))AS
Insert Into SMB_InvoiceInfo (MemberID,ClaimMethod,InvoiceNum,InvoiceDate,InvoiceCity) Values (@sUserID,@sClaimMethod,@sInvoiceNum,@sInvoiceDate,@sBuyCity)
return @@IDENTITY
GO
//调用存储过程代码
Dim CN As New SqlConnection()
Dim InvoiceID As String
Try
CN.ConnectionString = DBConStr
CN.Open()
Dim CMD As SqlCommand
CMD = New SqlCommand(AddNewInvoiceInfo, CN)
CMD.CommandType = CommandType.StoredProcedure
CMD.Parameters.Add(New SqlParameter(@sUserID, SqlDbType.Int))
CMD.Parameters(@sUserID).Value = CInt(UserID.Text)
CMD.Parameters.Add(New SqlParameter(@sClaimMethod, SqlDbType.VarChar, 50))
CMD.Parameters(@sClaimMethod).Value = TransName.Text
CMD.Parameters.Add(New SqlParameter(@sInvoiceNum, SqlDbType.VarChar, 50))
CMD.Parameters(@sInvoiceNum).Value = InvoiceNum.Text
CMD.Parameters.Add(New SqlParameter(@sInvoiceDate, SqlDbType.DateTime))
CMD.Parameters(@sInvoiceDate).Value = InvoiceDate.SelectedDate.Date
CMD.Parameters.Add(New SqlParameter(@sBuyCity, SqlDbType.VarChar, 50))
CMD.Parameters(@sBuyCity).Value = BuyCity.Text
CMD.Parameters.Add(New SqlParameter(@sInvoiceID, SqlDbType.Int))
CMD.Parameters(@sInvoiceID).Direction = ParameterDirection.ReturnValue
CMD.ExecuteNonQuery()
InvoiceID = CMD.Parameters(@sInvoiceID).Value.ToString()
CMD.Dispose()
Catch ex As Exception
Response.Write(ex.ToString())
Finally
CN.Close()
End Try
呵呵,看样子你应该是想显示的一行是特定的一行吧
你看这样行不行
你用rs接受到存储过程返回的表后
直接给rs设置一个过滤条件,例如 rs.Filter="ID=1"
将你要的那条记录过滤出来后再将rs绑定到DataGridView
希望能帮到你……