这是一个非常简单的问题。
我正在尝试从存储过程中返回表,例如
select * from emp where id=@id
我想将此查询结果作为表格返回。我必须通过存储过程来做到这一点。
你的问题在哪里?
对于存储过程,只需创建:
CREATE PROCEDURE dbo.ReadEmployees @EmpID INT AS SELECT * -- I would *strongly* recommend specifying the columns EXPLICITLY FROM dbo.Emp WHERE ID = @EmpID
这就是全部。
在您的ASP.NET应用程序中,只需创建一个SqlConnection和一个SqlCommand(不要忘记设置CommandType = CommandType.StoredProcedure)
SqlConnection
SqlCommand
CommandType = CommandType.StoredProcedure
DataTable tblEmployees = new DataTable(); using(SqlConnection _con = new SqlConnection("your-connection-string-here")) using(SqlCommand _cmd = new SqlCommand("ReadEmployees", _con)) { _cmd.CommandType = CommandType.StoredProcedure; _cmd.Parameters.Add(new SqlParameter("@EmpID", SqlDbType.Int)); _cmd.Parameters["@EmpID"].Value = 42; SqlDataAdapter _dap = new SqlDataAdapter(_cmd); _dap.Fill(tblEmployees); } YourGridView.DataSource = tblEmployees; YourGridView.DataBind();
然后DataTable用该数据填充例如a并将其绑定到例如GridView。
DataTable