获取不了存储过程输出参数

lianling 2010-06-14 08:55:13
Dim mess As String
myConn = New SqlConnection("server=LENOVO-B9B16E97;uid=sa;pwd=111111;database=navigate")

myConn.Open()
myComm = New SqlCommand("Addpoint", myConn)
myComm.CommandType = CommandType.StoredProcedure

myComm.Parameters.Add("@p_PlaNo", SqlDbType.Char, 10)
myComm.Parameters("@p_PlaNo").Value = Trim(TextBox5.Text)

myComm.Parameters.Add("@p_PlaName", SqlDbType.Char, 20)
myComm.Parameters("@p_PlaName").Value = Trim(TextBox7.Text)

myComm.Parameters.Add("@p_Weather", SqlDbType.VarChar, 20)
myComm.Parameters("@p_Weather").Value = Trim(TextBox17.Text)

myComm.Parameters.Add("@p_Information", SqlDbType.VarChar, 30)
myComm.Parameters("@p_Information").Value = Trim(TextBox6.Text)

myComm.Parameters.Add("@p_ZipCode", SqlDbType.VarChar, 10)
myComm.Parameters("@p_ZipCode").Value = Trim(TextBox8.Text)

myComm.Parameters.Add("@p_PlaX", SqlDbType.VarChar, 10)
myComm.Parameters("@p_PlaX").Value = Trim(TextBox3.Text)

myComm.Parameters.Add("@p_PlaY", SqlDbType.VarChar, 10)
myComm.Parameters("@p_PlaY").Value = Trim(TextBox4.Text)

myComm.Parameters.Add("@p_mess", SqlDbType.VarChar, 20)
myComm.Parameters("@p_mess").Direction = ParameterDirection.Output
myDataread = myComm.ExecuteReader

mess = CStr(myComm.Parameters.Item("@p_mess").Value).Trim
MessageBox.Show(mess)
----------------------------------------------------------------------------------------------------
这一段可以插入数据但是在mess = CStr(myComm.Parameters.Item("@p_mess").Value).Trim
这一句会产生异常
...全文
72 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lianling 2010-06-14
  • 打赏
  • 举报
回复
未声明Response
wuyq11 2010-06-14
  • 打赏
  • 举报
回复
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("SqlServer").ToString())
conn.Open()
Dim MyCommand As New SqlCommand("MYSQL", conn)
MyCommand.CommandType = CommandType.StoredProcedure
MyCommand.Parameters.Add(New SqlParameter("@a", SqlDbType.Int))
MyCommand.Parameters("@a").Value = 20
MyCommand.Parameters.Add(New SqlParameter("@b", SqlDbType.Int))
MyCommand.Parameters("@b").Direction = ParameterDirection.Output
MyCommand.ExecuteNonQuery()
Response.Write(MyCommand.Parameters("@b").Value.ToString())

lianling 2010-06-14
  • 打赏
  • 举报
回复
myComm.ExecuteNonQuery();//使用ExecuteNonQuery(),不用DataReader


-----------------------------------------------------------------
改成这样连数据都插入不了
异常是 尝试读取或写入受保护的内存。这通常指示其他内存已损坏
原来的异常是未将对象引用设置到对象的实例
xray2005 2010-06-14
  • 打赏
  • 举报
回复
myComm.Parameters.Add("@p_mess", SqlDbType.VarChar, 20)
myComm.Parameters("@p_mess").Direction = ParameterDirection.Output
myComm.ExecuteNonQuery();//使用ExecuteNonQuery(),不用DataReader

mess = CStr(myComm.Parameters.Item("@p_mess").Value).Trim
MessageBox.Show(mess)
捷哥1999 2010-06-14
  • 打赏
  • 举报
回复
这个存储过程返回的是记录吗?如果只是进行更新操作,而不是要查询返回数据,这样!

myDataread = myComm.ExecuteReader

修改为
Dim effectedRecCount As Integer= myComm.ExecuteNonQuery()
lianling 2010-06-14
  • 打赏
  • 举报
回复
不是null啊
永生天地 2010-06-14
  • 打赏
  • 举报
回复
存储过程输出有可能是null,所以要先判断myComm.Parameters.Item("@p_mess")是否是null

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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