vb.net登陆按钮调用存储过程,有两个comm对象时出错

想做一个vb.net登录的窗口,首先在窗体load事件中,读取数据库中webuser表中的usename列数据,并加入到下拉列表框::Conn.Open()comm=Ne... 想做一个vb.net登录的窗口,首先在窗体load事件中,读取数据库中webuser表中的usename列数据,并加入到下拉列表框::
Conn.Open()
comm = New SqlCommand("select Username from WebUsers", Conn)
dr = comm.ExecuteReader()
If UCase(Conn.State.ToString()) = "OPEN" Then
'"数据库连接成功!
Do While dr.Read()
Chkusername.Items.Add(dr.Item("username")) '把数据加入到下拉列表框
Loop
End If

然后在按钮的click事件中,调用存储过程,判断登录名和密码:
Try
comm = New SqlCommand("sp_Checkpass", Conn)
comm.CommandType = CommandType.StoredProcedure
comm.Parameters.Add("@CHKName", SqlDbType.VarChar, 12).Value = Chkusername.Text
comm.Parameters.Add("@CHKPass", SqlDbType.VarChar, 20).Value = ChkPassWord.Text
comm.Parameters.Add("@ISValid", SqlDbType.VarChar, 12).Direction = ParameterDirection.Output
comm.ExecuteNonQuery()
If comm.Parameters("@ISValid").Value = "Good" Then
MessageBox.Show("验证成功!")
Else
MessageBox.Show("验证失败!")
End If
Catch ex As Exception

End Try
现在的问题是:假如把第一段去掉,第二段就可以执行了,估计是comm对象不能多处使用,请问怎么解决?请高手指点小弟。
展开
 我来答
阳光的雷咩咩
2014-01-14 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7766万
展开全部
你上面的报错是不是类似“连接已经打开”或者“连接已经关闭”之类?有可能是你说的原因,SqlConnection最好不要写成全局的变量,应该在每个调用的地方重新new,最好用using结构来声明。
更多追问追答
追问
初学VB。net请详细指点
就是什么错误提示都米有,把第一段的
comm。。。。。后面的去掉就可以执行登录验证的存储过程。说明后面的存储过程也没有写错。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式