VB.net数据库编程(06):调用存储过程(带参和不参数情况)

前端之家收集整理的这篇文章主要介绍了VB.net数据库编程(06):调用存储过程(带参和不参数情况)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
先建立一个无参的存储过程,为下面第一个无参调用作准备:

  1. useSales
  2. go
  3. createproceduresp_getGrade
  4. as
  5. select*fromgradewhere数学>60
  6. go

注:go是作为前面批处理的结束情况。因为前面执行是要花时间的,如果后面执行的要依赖前面结果,没有go的话,有可能前面

没有执行完,当然后面依赖此结果的语句就会执行错误。所以go的作用很大。


再复习ADO.net的过程:

一、连接数据库

二、发出指令。command默认是commandType.text。因为是存储过程,所以应指明为commandType.StoreProcedure

三、填充结果集,显示


所以代码如下:

[vb] ?
    ImportsSystem.Data.sqlClient
  1. PublicClassForm1
  2. DimcnAssqlConnection
  3. DimcmAssqlCommand
  4. DimdaAssqlDataAdapter
  5. DimdsAsDataSet
  6. PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.Click
  7. Try
  8. cn=NewsqlConnection("DataSource=(local);InitialCatalog=Sales;IntegratedSecurity=false;UserID=sa;Password=123456;")
  9. cn.Open()'此句不省
  10. cm=NewsqlCommand("sp_getGrade",cn)
  11. cm.CommandType=CommandType.StoredProcedure'指明为存储过程
  12. da=NewsqlDataAdapter(cm)
  13. ds=NewDataSet()
  14. da.Fill(ds,"grade")
  15. DataGridView1.DataSource=ds.Tables("grade")
  16. cn.Close()
  17. CatchexAsException
  18. MessageBox.Show("执行失败")
  19. EndTry
  20. EndSub
  21. EndClass

结果如下:




================================================================================================


下面是一个带参数的存储过程的调用

这个带参的存储过程用到了前面的sql存储过程:



注:output是说明这个参数是一个输出变量。有三种变量:输入变量(就是前面两个就是),输出变量(第三个),输入/输出变量。


表中存储的用户名和密码。存储过程就是来验证里面的用户名和密码的。


下面用vb.net来调用这个带参数的存储过程。

带参数的存储过程有一个专门的Parameters属性来指明,其中的Add就是添加这个参数。

另外还有一个Value是获得或设置其变量的值。direction也一样,只不过是特殊的值,比如本的输出参数。


看下实例:带参的存储过程调用

?
    PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.Click
  1. Try
  2. cn=NewsqlConnection("DataSource=.;InitialCatalog=Sales;IntegratedSecurity=False;UserID=sa;Password=123456;")
  3. cn.Open()
  4. cm=NewsqlCommand("sp_CheckPass",cn)
  5. cm.CommandType=CommandType.StoredProcedure
  6. cm.Parameters.Add("@CHKName",sqlDbType.VarChar,30).Value=TextBox1.Text
  7. cm.Parameters.Add("@CHKPass",30).Value=TextBox2.Text
  8. cm.Parameters.Add("@ISValid",12).Direction=ParameterDirection.Output
  9. cm.ExecuteNonQuery()
  10. Ifcm.Parameters("@ISValid").Value="Good"Then
  11. MessageBox.Show("验证成功")
  12. Else
  13. MessageBox.Show("验证失败")
  14. EndIf
  15. MessageBox.Show(ex.ToString)
  16. EndClass

结果:



注:这里没用密码框,是为了显示程序流程。

猜你在找的VB相关文章