我使用存储过程中的实体框架在数据集中获取数据,现在我必须在c#代码中显示特定列的数据。我尝试使用WriteXML,但它是xml格式。 这是我的代码,我附上了存储过程结果的照片。
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(" -----------------------------------------------------------------------------");
答案 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();