显示DataSet中的数据

时间:2014-09-19 15:56:33

标签: c# asp.net stored-procedures dataset console-application

我使用存储过程中的实体框架在数据集中获取数据,现在我必须在c#代码中显示特定列的数据。我尝试使用WriteXML,但它是xml格式。 这是我的代码,我附上了存储过程结果的照片。enter image description here

DataSet myds = new DataSet();
            myds = new BLRestaurant().GetMenu();
            Console.WriteLine("Please select items from the menu listed:");
            Console.WriteLine("                                      Menu");
            Console.WriteLine(" -----------------------------------------------------------------------------");
            Console.WriteLine(" |  ID    |            ITEM             | ACTUAL PRICE  |  DISCOUNTED PRICE  | ");
            Console.WriteLine(" -----------------------------------------------------------------------------");

2 个答案:

答案 0 :(得分:2)

当您使用.Net将其输出到GridView

<asp:GridView Id="MyGridView" runat="server" />

然后在后面的代码中执行类似的操作:

    private LoadGridView()
    {
        MyGridView.DataSource = GetMyData();
        MyGridView.DataBind();
    }

    private DataTable GetMyData()
    {
        DataTable result = new DataTable();
        SqlConnection con = new SqlConnection(SQLConn);
        SqlCommand cmd = new SqlCommand("[MyStoreProcedure]", con);
        cmd.CommandType = CommandType.StoredProcedure;
        try
        {
            con.Open();
            //Define parameters here
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            adapter.Fill(result);
        }
        catch (Exception ex)
        {
            //trap for errors
        }
        finally
        {
            con.Close();
            con.Dispose();
            cmd.Dispose();
        }
        return result;
    }

即使您不想使用GridView,最好将数据放入DataTable中,因为您可以使用以下语句对其进行操作和迭代:

    foreach(DataRow dr in MyDataTable.Rows)
    {
        //do some stuff with the row
        //find a value in a column?
        string fieldText = dr["ColumnA"].Text;
    }

答案 1 :(得分:0)

foreach(DataRow row in myds.Tables[0].Rows)
{    
    var id = row["ItemID"];
    var name = row["ItemName"];
}

将为您提供显示数据。如果您正在寻找更通用的东西,您可以遍历表格并获取列名称:

IEnumerable<string> columns = tbl.Columns.Cast<DataColumn>().Select(x => x.ColumnName);

此外,您可以合并前两行作为实例化一个DataSet,立即被覆盖是糟糕的内存管理:

DataSet myds = new BLRestaurant().GetMenu();