请帮我看看:一个关于存储过程返回参数的问题(老生常谈)

蓝诺 2003-10-15 10:11:35
代码如下:
<Script Language="VB" Runat="Server">
LoginUser=Trim(Request.Form("userid"))
LoginPass=Trim(Request.Form("passwd"))
If Instr(LoginUser,"'") then
MessageBox("对不起,内务没有此用户名!")
End if
If Instr(LoginPass,"'") Then
MessageBox("对不起,内务没有此用户名!")
End if
'连接我的sql数据库
Dim nwindConn As SqlConnection = New SqlConnection("SQLOLEDB.1;Password=13873108205;Persist Security Info=True;User ID=sa;Initial Catalog=systemMDB;Data Source=SPYING")
'调用我的存储过程SP_PROC_GET_USERINFO("第一个参数","第二个参数")
Dim salesCMD As SqlCommand = New SqlCommand("SP_PROC_GET_USERINFO", nwindConn)
salesCMD.CommandType = CommandType.StoredProcedure
'第一个参数(用户名)
Dim myParm1 As SqlParameter = salesCMD.Parameters.Add("@LoginUser", SqlDbType.NVarChar, 20)
myParm1.Value = LoginUser
'第二个参数(密码)
Dim myParm2 As SqlParameter = salesCMD.Parameters.Add("@LoginPass", SqlDbType.NVarChar, 10)
myParm2.Value = LoginPass

nwindConn.Open()

Dim myReader As SqlDataReader = salesCMD.ExecuteReader()
'-----------注意问题所在-------------------
'我怎么得到存储过程返回的值呢!有N个值呢!
'-----------注意问题所在-------------------

myReader.Close()
nwindConn.Close()
Protected Sub MessageBox(ByVal message As String)
' 显示弹出框
RegisterJavaScript(, "window.alert('" & message.Replace(vbCrLf, "") & "');")
End Sub
</Script>
...全文
30 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝诺 2003-10-20
  • 打赏
  • 举报
回复
本人已解决!结贴!多谢各位!
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
帮你顶一顶
saucer 2003-10-16
  • 打赏
  • 举报
回复
of course, but in your sp, you need to do something like

@LoginName nvarchar(10) OUTPUT
蓝诺 2003-10-16
  • 打赏
  • 举报
回复
<%@ Page language="VB" debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="VB" runat="server">
Dim LoginUser as string,LoginPass as string
dim objreader as SqlDataReader
dim myCommand1 as SqlCommand
dim objparam as Sqlparameter
sub Page_Load(src as Object ,e as EventArgs)
LoginUser=Trim(Request.Form("userid"))
LoginPass=Trim(Request.Form("passwd"))
dim myConnection as new Sqlconnection("server=SPYING;database=wwwspacennet;User id=sa;Password=5518008")
myConnection.Open()

myCommand1= new SqlCommand("SP_PROC_GET_USERINFO", myConnection)

myCommand1.CommandType = CommandType.StoredProcedure

objparam=myCommand1.Parameters.Add("@LoginUser", SqlDbType.VarChar,20)
objparam.Direction=ParameterDirection.Input
objparam.Value = LoginUser

objparam=myCommand1.Parameters.Add("@LoginPass", SqlDbType.VarChar,10)
objparam.Direction=ParameterDirection.Input
objparam.Value = LoginPass

objparam=myCommand1.Parameters.Add("@LoginName", SqlDbType.VarChar,20)
objparam.Direction=ParameterDirection.Output
objparam.Value = ""

objparam=myCommand1.Parameters.Add("@LoginDepa", SqlDbType.VarChar,30)
objparam.Direction=ParameterDirection.Output
objparam.Value = ""

objparam=myCommand1.Parameters.Add("@LoginPope", SqlDbType.VarChar,200)
objparam.Direction=ParameterDirection.Output
objparam.Value = ""

objparam=myCommand1.Parameters.Add("@LoginGrad", SqlDbType.Int,4)
objparam.Direction=ParameterDirection.Output
objparam.Value = 0

objparam=myCommand1.Parameters.Add("@LoginId", SqlDbType.VarChar,4)
objparam.Direction=ParameterDirection.Output
objparam.Value = ""

objparam=myCommand1.Parameters.Add("@LoginSex", SqlDbType.VarChar,2)
objparam.Direction=ParameterDirection.Output
objparam.Value = ""

objparam=myCommand1.Parameters.Add("@LoginNum", SqlDbType.Int,4)
objparam.Direction=ParameterDirection.Output
objparam.Value = 0

objparam=myCommand1.Parameters.Add("@LoginTrue", SqlDbType.Int,4)
objparam.Direction=ParameterDirection.Output
objparam.Value = 0

objparam=myCommand1.Parameters.Add("@ErrMsg", SqlDbType.VarChar,255)
objparam.Direction=ParameterDirection.Output
objparam.Value = ""

try
objreader=myCommand1.ExecuteReader()
Do While objreader.Read()
Message.value=objreader.GetString(0)
Loop
lbl.Text=objreader("ID")
catch ex as Exception
end try
usrGrid.DataSource=objreader
usrGrid.DataBind()

end sub
</script>
<body>
<form runat="server">
<asp:Label id="lbl" runat="server" /><INPUT type="text" Id="Message" runat="server">
<asp:DataGrid id="usrGrid" runat="server" HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="#eeeeee" AutoGenerateColumns="true" AllowPaging="True" AllowCustomPaging="True" PageSize="5" PagerStyle-Mode="NumericPages" PagerStyle-HorizontalAlign="Right" />
</form>
</body>

蓝诺 2003-10-16
  • 打赏
  • 举报
回复
思归:
你是说我要定义一个output的输出参数值。
myParm3 = salesCMD.Parameters.Add("@LoginName", SqlDbType.Nvarcher, 0, "LoginName")
myParm3.Direction = ParameterDirection.Output
这样我就可以带出一个返回值@LoginName吗?
saucer 2003-10-15
  • 打赏
  • 举报
回复
1. you are not adding those parameters to salesCMD's Parameters collection

>>>存储过程返回的值?? or recordset??

for 返回值, you need to add appropriate Output parameters to the salesCMD.Parameters, close the reader , then use salesCMD.Parameters["parameterName"].Value to get their values
webdiyer 2003-10-15
  • 打赏
  • 举报
回复
C#:

while(myReader.Read()){
//获取选取的第一列的值,假设类型为varchar
string firstCol=myReader.GetString(0);
}

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧