如何从C#中的存储过程中获取值?

时间:2011-08-25 03:27:41

标签: c# sql stored-procedures

我有如下表格

emp_id, emp_name, emp_address, emp_salary, emp_rating

我想获得以上所有行...我已经编写了如下存储过程:

CREATE PROCEDURE [dbo].[fetch_empdata]
@empid int
AS
SELECT * 
FROM emptable
WHERE emp_id = @empid;
string connection = "Data Source=" + server + ";Initial Catalog=" + dbase + ";User ID=" + userid + ";Password=" + password;

conn = new SqlConnection(connection);
conn.Open();
SqlCommand cmd  = new SqlCommand(storedprocedure, conn);

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add(new SqlParameter("@empid", empid));

rdr = cmd.ExecuteReader();

任何人都可以帮助我从emp表接收数据的命令是什么?我想获得与程序中给出的empid相对应的所有列。

3 个答案:

答案 0 :(得分:1)

使用rdr读取返回的数据。 rdr = cmd.ExecuteReader()之后立即添加:

while (rdr.Read())
{
    var firstName = rdr["firstName"];
    var lastName = rdr["lastName"];
    var employeeId = rdr["empId"];
    // etc.
}

答案 1 :(得分:0)

你已经有了rdr对象

           while(rdr.Read())
            {
            //  var something=  rdr[0] you can access columns here
            }

并且您的代码应该提供过程名称

  

SqlCommand cmd = new SqlCommand(“fetch_empdata”,conn);

答案 2 :(得分:0)

rdr["NameOfColumn"]
rdr["NameOfColumn2"]
...