我对存储过程很新.
假设我有一个IDCategory(int)并将其传递给存储过程.在正常谈话中,它会:
Find me all the listings with an
IDCategory equal to the IDCategory I’m
telling you to find.
所以它会找到说3列表,并创建一个包含列的表:
IDListing,IDCategory,Price,Seller,Image.
我怎么能实现这个目标?
解决方法
要从存储过程填充数据集,您将拥有如下代码:
sqlConnection MysqLConnection =new sqlConnection("server=(local);database=MyDatabase;Integrated Security=SSPI;"); sqlCommand MysqLCommand = MysqLConnection.CreateCommand(); MysqLCommand.CommandText = "IDCategory"; MysqLCommand.CommandType = CommandType.StoredProcedure; MysqLCommand.Parameters.Add("@IDCategory",sqlDbType.Int).Value = 5; sqlDataAdapter MysqLDataAdapter = new sqlDataAdapter(); MysqLDataAdapter.SelectCommand = MysqLCommand; DataSet myDataSet = new DataSet(); MysqLConnection.Open(); MysqLDataAdapter.Fill(myDataSet);
你的连接字符串会有所不同,有几种不同的方法可以做到这一点,但这应该让你去….一旦你掌握了一些这些,请看看使用声明.它有助于清理资源,并且需要少量代码.这假定存储过程名称IDCategory,其中一个参数称为相同.您的设置可能略有不同.
在这种情况下,您的存储过程将类似于:
CREATE PROC [dbo].[IDCategory] @IDCategory int AS SELECT IDListing,Image FROM whateveryourtableisnamed WHERE IDCategory = @IDCategory
以下是存储过程基础知识的链接:
http://www.sql-server-performance.com/articles/dba/stored_procedures_basics_p1.aspx
这是ADO.Net上的DataSet和其他项目的链接:
http://authors.aspalliance.com/quickstart/howto/doc/adoplus/adoplusoverview.aspx