現(xiàn)用戶有一數(shù)據(jù)表格如下:id 書名 價(jià)格 操作1 A 10 選擇2 b 28 選擇3 c 39 選擇從庫(kù)中選出如上表格中數(shù)據(jù),點(diǎn)“選擇”,出現(xiàn)填寫訂購(gòu)信息輸入框等,要求得到書的ID號(hào),并和訂購(gòu)信息一并存入數(shù)據(jù)庫(kù)中,單人操作時(shí)沒有問題,可以得到ID,存儲(chǔ)一切正常,但當(dāng)兩個(gè)人同時(shí)運(yùn)行這個(gè)程序時(shí),ID就總是取到最后點(diǎn)擊book_Click的那個(gè)ID,比如A先進(jìn)入book.aspx,并點(diǎn)擊了ID為1的書,這時(shí)B也在另外一臺(tái)機(jī)器上點(diǎn)擊進(jìn)入book.aspx,點(diǎn)擊選擇ID為2的BOOK,這時(shí)如果A填寫完了訂購(gòu)信息,點(diǎn)擊保存,存入庫(kù)中的是ID為2的書,A用戶應(yīng)該選擇的是ID=1,顯然系統(tǒng)取的是最后一次點(diǎn)擊book_click取到的值,為什么呢?請(qǐng)大俠賜教?代碼如下:protected void fill_tb(){Table2.Rows.Clear(); TableRow tr; TableHeaderCell th; TableCell tc;#region 填充表頭tr = new TableRow();th = new TableHeaderCell();th.Text = "ID";tr.Cells.Add(th);th = new TableHeaderCell();th.Text = "書名";tr.Cells.Add(th);th = new TableHeaderCell();th.Text = "價(jià)格";tr.Cells.Add(th);th = new TableHeaderCell();th.Text = "操作";tr.Cells.Add(th);Table2.Rows.Add(tr);#endregionstring sql ="select id,bookname,price from book ";DataSet dst = DBCommand.ExecuteDataSet(sql, "tab");int nums = dst.Tables[0].Rows.Count;for (int i = 0; i < nums; i++){#region 數(shù)據(jù)行tr = new TableRow();tr.HorizontalAlign = HorizontalAlign.Center;tc = new TableCell();tc.Text = dst.Tables[0].Rows[i]["id"].ToString();tr.Cells.Add(tc);//tc = new TableCell();tc.Text = dst.Tables[0].Rows[i]["bookname"].ToString();tr.Cells.Add(tc);//作業(yè)項(xiàng)目tc = new TableCell();tc.Text = dst.Tables[0].Rows[i]["price"].ToString();tr.Cells.Add(tc);//責(zé)任人tc = new TableCell();LinkButton lkbtn = new LinkButton();lkbtn.ID = dst.Tables[0].Rows[i]["id"].ToString();lkbtn.Text = "操 作";lkbtn.Click += new EventHandler(book_Click);tc.Controls.Add(lkbtn);tr.Cells.Add(tc);Table2.Rows.Add(tr);#endregion}dst.Dispose();}protected void book_Click(object sender, EventArgs e) //點(diǎn)擊事件{LinkButton btn = sender as LinkButton;bookid=Convert.ToInt32(btn.ID.ToString());Fill_db();//顯示詳單}
2 回答

陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
1:第一種可能,你測(cè)試的二個(gè)頁(yè)面是同一種瀏覽器打開的,比如IE,這樣二個(gè)頁(yè)面的會(huì)話是同一會(huì)話,不論操作什么,都是取最后一次的值
2:第二種可能
bookid=Convert.ToInt32(btn.ID.ToString());
這個(gè)booid從哪里定義的?

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
可以利用用戶身份加以區(qū)分例如:寫入數(shù)據(jù)庫(kù)時(shí),設(shè)定一個(gè)userid列來確定哪個(gè)用戶操作。
添加回答
舉報(bào)
0/150
提交
取消