从存储过程中检索多行

时间:2014-04-08 09:26:37

标签: asp.net sql-server-2008

我的存储过程proc_search仅返回执行时的名称,并且我一直在ASP.NET中使用以下代码来显示值...

SqlCommand cmd = new SqlCommand("proc_search", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@branch", SqlDbType.VarChar).Value = branchidtext.Text;
cmd.Parameters.Add("@Acct", SqlDbType.VarChar).Value = accountidtext.Text;

SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
    nametext.Text = reader[0].ToString();
}

如果我有一个返回多个列和多行的过程,如Name,Address,Age ......如何在文本框中显示它?请帮忙。

2 个答案:

答案 0 :(得分:0)

如果您知道确切的数据顺序,可以说

 while (reader.Read())
    {
    nametext.Text = reader[0].ToString();
    agetext.Text = reader[1].ToString();
    addresstext.Text = reader[2].ToString();
}

等......如果你不知道订单而不是说

 while (reader.Read())
    {
    nametext.Text = reader["Name"].ToString();
    agetext.Text = reader["Age"].ToString();
    addresstext.Text = reader["Address"].ToString();
}

答案 1 :(得分:0)

使用这种方法。这将返回具有多行和列的数据集

 public DataSet GetDataSet()
    {
        SqlConnection conn = new SqlConnection(con);
        SqlDataAdapter da = new SqlDataAdapter();
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = "proc_search";
        cmd.CommandType = CommandType.StoredProcedure;
        da.SelectCommand = cmd;
        DataSet ds = new DataSet();

        conn.Open();
        da.Fill(ds);
        conn.Close();

        return ds;
    }