我會盡可能在我所能來形容我的問題的問題,會話[「東西」]給數據庫
我在做一個學校項目,我們在那裏建立了一個網站和數據庫。您可以登錄此網站,然後搜索,向某些數據庫表添加和刪除不同的產品。它是什麼等等並不重要。
主要部分是:例如,您有一個名爲實際庫存的數據庫表。還有一個包含產品的產品表。然後,您登錄到網站,搜索產品,然後將其添加到實際庫存表中,並將其數量添加到您的實際庫存表中。
這工作得很好,但我碰到一個小問題。讓我來解釋一下這個問題: 如果我第一次登錄到網站,搜索一個產品,然後將這個產品添加到我的實際庫存中,這將會被添加到數據庫中,完全沒有問題。但是現在,如果另一個用戶登錄到該網站(當im仍然登錄時)搜索同一個產品,然後將其中一個添加到他的實際庫存中,他將獲得其中的兩個數量(它需要一個我已經在我的名單上並添加了他正在添加的名單)如果他將他們從實際庫存中刪除,他們也將從我的實際庫存中刪除。
希望你們瞭解問題的描述。
這是多麼我已經做出登錄,這樣登錄的用戶將獲得一個會話ID匹配從數據庫中的用戶ID:
protected void btnlogin_Click(object sender, EventArgs e)
{
SSDataContext db = new SSDataContext();
var myUser = db.Userdbs.SingleOrDefault(x => x.Email == TUname.Text && x.Password == TPas.Text);
if (myUser != null)
{
Session["userid"] = myUser.UserID.ToString();
Response.Redirect("Default.aspx");
,這是工作的罰款,只有一個用戶登錄在
這是我給定的產品添加到數據庫表:
protected void btnAdd_Click(object sender, EventArgs e)
{
SSDataContext db = new SSDataContext();
ActualStock myAdd = new ActualStock();
if (!db.ActualStocks.Any(u => u.EAN == addSoeg.Text))
{
myAdd.EAN = addSoeg.Text;
myAdd.UserID = Convert.ToInt32(Session["userid"]);
myAdd.Quantity = 0;
db.ActualStocks.InsertOnSubmit(myAdd);
db.SubmitChanges();
}
myAdd = db.ActualStocks.Single(x => x.EAN == addSoeg.Text);
myAdd.UserID = Convert.ToInt32(Session["userid"]);
myAdd.Quantity = myAdd.Quantity + Convert.ToInt32(quantity.Text);
db.SubmitChanges();
Response.Redirect(Request.RawUrl);
}
這也只有一個用戶的工作就好了,再登錄到該網站。
任何一個可以幫助我理解爲什麼會話ID的弄混了,產品得到補充,並從
希望刪除我已經解釋過我自己就夠了,這樣你能理解這是怎麼回事。
如果您需要更多其他信息,請告訴我。
我們使用MSSQL數據庫,並使用LINQ
謝謝你的快速回復,請你向我解釋你爲什麼要這樣做,以及其他方法有什麼問題?由於即時通信在編碼和學習階段仍然非常新穎,我將從解釋中受益匪淺。 (對於英語,不是我的主要語言) –
第一條if語句中的錯字。你用'u'作爲var,然後切換到'x'。 – paqogomez
謝謝。複製粘貼 –