先建立一个无参的存储过程,为下面第一个无参调用作准备:
- useSales
- go
- createproceduresp_getGrade
- as
- select*fromgradewhere数学>60
- go
注:go是作为前面批处理的结束情况。因为前面执行是要花时间的,如果后面执行的要依赖前面结果,没有go的话,有可能前面
没有执行完,当然后面依赖此结果的语句就会执行错误。所以go的作用很大。
再复习ADO.net的过程:
一、连接数据库
二、发出指令。command默认是commandType.text。因为是存储过程,所以应指明为commandType.StoreProcedure
三、填充结果集,显示。
所以代码如下:
[vb]
?
- ImportsSystem.Data.sqlClient
- PublicClassForm1
- DimcnAssqlConnection
- DimcmAssqlCommand
- DimdaAssqlDataAdapter
- DimdsAsDataSet
- PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.Click
- Try
- cn=NewsqlConnection("DataSource=(local);InitialCatalog=Sales;IntegratedSecurity=false;UserID=sa;Password=123456;")
- cn.Open()'此句不省
- cm=NewsqlCommand("sp_getGrade",cn)
- cm.CommandType=CommandType.StoredProcedure'指明为存储过程
- da=NewsqlDataAdapter(cm)
- ds=NewDataSet()
- da.Fill(ds,"grade")
- DataGridView1.DataSource=ds.Tables("grade")
- cn.Close()
- CatchexAsException
- MessageBox.Show("执行失败")
- EndTry
- EndSub
- EndClass