使用LINQ to Entities。不是SQLConnections或任何其他方法。linq to entities檢索數據庫表的行值並顯示爲label.Text C#.net
我有一個網頁,我需要在同一個數據庫中顯示一個DataTable中的'ID'和另一個DataTable中相應的'Name'。 ID和名稱應顯示爲lblOrderId.Text = OrderId.ToString();和lblName.Text = Name.ToString();分別。
不一定是一個字符串,我只是想從標籤中的數據庫的值。
因爲它現在我沒有得到任何標籤文本,但如果我使用代碼在這一切的底部,我得到的是訂單和交貨日期。
包含OrderId的數據表有兩列; OrderId是自動生成的,並且位於列0和ProductId中。
DATATABLE含有名稱具有6列,名稱在列1被作爲列0成立自動生成的客戶ID
所有我需要的是最後添加的名稱和ID將被顯示爲標籤。
我一直在研究這個網站和其他人在過去的5個小時,似乎無法找到一個適合我的需求的解決方案。這是所有的SQL連接和一個稀疏的數據庫值的文本框。
請參閱下面的代碼,我已經取得了什麼,如果您需要任何進一步的編碼或信息,請不要猶豫,問。
非常感謝您提供任何建議或幫助。
ASPX.CS(後端)
protected void Page_Load(object sender, EventArgs e)
{
using (Entities myEntities = new Entities())
{
int OrderId = // Not sure what to put here, but if I don't have it I get the error *The name OrderId does not exist in the current context*
var orderId = (from ord in myEntities.Orders
where ord.OrderId.Equals(OrderId) // Error here
select ord).Last();
lblOrderID.ForeColor = Color.Red;
lblOrderID.Text = orderId.ToString();
面對與關於名稱下面的方法完全相同的錯誤。這兩種方法都包含在相同的使用實體{}大括號內。
var name = (from ord in myEntities.Customer
where ord.Name.Equals(Name)
select ord).Last();
lblName.ForeColor = Color.Red;
lblName.Text = name.ToString();
合,但仍然在Page_Load {大括號我有以下代碼以添加訂單日期和交貨日期所看到下面
DateTime date = DateTime.Now;
DateTime DeliveryDate = date.AddDays(5);
lblDate.ForeColor = Color.Red;
lblDeliveryDate.ForeColor = Color.Red;
lblDate.Text = date.ToLongDateString();
lblDeliveryDate.Text = DeliveryDate.ToLongDateString();
全部塊內}的使用實體{}波形括號的Page_Load
protected void Page_Load(object sender, EventArgs e)
{
using (Entities myEntities = new Entities())
{
//int OrderId = Convert.ToInt32(); // Not sure what to put here, but if I don't have it I get the error *The name OrderId does not exist in the current context*
var orderId = (from ord in myEntities.Orders
where ord.OrderId.Equals(OrderId)// Error here
select ord).Last();
lblOrderID.ForeColor = Color.Red;
lblOrderID.Text = orderId.ToString();
var name = (from ord in myEntities.Customer
where ord.Name.Equals(Name)
select ord).Last();
lblName.ForeColor = Color.Red;
lblName.Text = name.ToString();
}
DateTime date = DateTime.Now;
DateTime DeliveryDate = date.AddDays(5);
lblDate.ForeColor = Color.Red;
lblDeliveryDate.ForeColor = Color.Red;
lblDate.Text = date.ToLongDateString();
lblDeliveryDate.Text = DeliveryDate.ToLongDateString();
}
ASPX(前端)
<p>
Hi
<asp:Label ID="lblName" runat="server" Text=""></asp:Label>
Thank you for shopping at Cineplex.<br />
<br />
Your Order ID number is:
<asp:Label ID="lblOrderID" runat="server" Text=""></asp:Label><br />
<br />
Your order was placed on:
<asp:Label ID="lblDate" runat="server" Text=""></asp:Label><br />
<br />
Delivery date:
<asp:Label ID="lblDeliveryDate" runat="server" Text=""></asp:Label>
</p>
的
對名稱和訂單ID進行硬編碼並刪除實體和查詢可以在後端使用下面的代碼看到,但是這是不可接受的。客戶在購買成功後需要查看他們的訂單ID。
這裏唯一的安慰是我在客戶端可以讀取的所有四個標籤中獲得一個值。
protected void Page_Load(object sender, EventArgs e)
{
lblName.ForeColor = Color.Red;
lblName.Text = "User";
lblOrderID.ForeColor = Color.Red;
lblOrderID.Text = "1";
DateTime date = DateTime.Now;
DateTime DeliveryDate = date.AddDays(5);
lblDate.ForeColor = Color.Red;
lblDeliveryDate.ForeColor = Color.Red;
lblDate.Text = date.ToLongDateString();
lblDeliveryDate.Text = DeliveryDate.ToLongDateString();
}
謝謝你的迴應。真的非常感謝您的意見,提出一個更簡潔的問題。至於int orderId = 4711; //在這裏無法幫助 - 你打算從哪裏得到它?我打算從我在數據庫中的訂單表中檢索它。訂單表包含自動生成的OrderId和CustomerId以及訂單的放置日期。 –