|
|
|
การพิ่ม ข้อมูล ListView + ลง ฐานข้อมมูล ครับ LINQ C# มีรูปให้ดู ครับ ซ้อยข๊อยแน๊ๆๆๆ |
|
|
|
|
|
|
|
ขอดันครับ
|
|
|
|
|
Date :
2013-02-09 07:29:05 |
By :
kyokohoho |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่รู้จะช่วยยังไงครับ แต่ถ้าพวกอ่านข้อมูลจากหลาย ๆ Table ลองดูพวก LEFT JOIN น่ะครับ
|
|
|
|
|
Date :
2013-02-09 07:43:41 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
for (i = 0; i <= lsvProductList.Items.Count - 1; i++)
{
var ps = (from p in db.tblDrugs
where p.DruID.ToString() == lsvProductList.Items[i].SubItems[0].Text //เลือกข้อมุล โดยการเทียบกัน ระหว่าง MisID=textBox1 เก็บไว้ใน Ps ก่อน
select p).FirstOrDefault();
tblDrug pD = new tblDrug();
int drug = int.Parse(lsvProductList.Items[i].SubItems[3].Text);
ps.DruBigUnit += drug;
using (TransactionScope ts = new TransactionScope()) //Using System.Transactions; ใน หนังสือ database programming with c# 2010 หน้า 351
{
db.tblDrugs.InsertOnSubmit(pD);
db.SubmitChanges();
ts.Complete();
}
}
มัน เอาค่า ไป + แค่ แถวแรกของ listview ส่วนแถว ที่ 2 มัน กลายเป็น ไปสร้าง ข้อมูลใหม่ (ID0)ในดาต้าเบส
อย่ากให้มันรับค่าที่ม เข้ามา ครับ
ตอนนี้จำกัดคำถามลง เหลือแค่ ว่า ทำอย่าไร ไห้ มัน ++ แล้วไปรับ ค่าที่ 2 ใน ListView ครับ แนะนำหน่อยครับ ซึ่งตอนนี้ ค่าที่ 1 รับได้ แล้ว นำค่าไป + ใน ตารางยาแล้ว ติดอยุ่ตรงที่ว่า มัน รับ แค่ ค่าที่ 1 (แถว ที่ 1 ) ใน ListView เท่านั้น
|
ประวัติการแก้ไข 2013-02-10 00:35:13 2013-02-10 00:35:41 2013-02-10 00:37:42
|
|
|
|
Date :
2013-02-10 00:29:49 |
By :
kyokohoho |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดันๆๆ ครับ กำลังติดเหมือนกันเลย
|
|
|
|
|
Date :
2013-02-10 02:26:36 |
By :
koru |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ แล้ว ๆ จุ๊กกรุ๊ๆๆ
|
|
|
|
|
Date :
2013-02-10 08:23:41 |
By :
kyokohoho |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตกลงเขียนยังไงครับ ลองเอามาแชร์กันดูครับ
|
|
|
|
|
Date :
2013-02-10 08:26:01 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (C#)
int i = 0;
private void button7_Click(object sender, EventArgs e)
{
for (i = 0; i <= lsvProductList.Items.Count - 1; i++) //นับlsvProductList ว่า มีกี่ แถว -1 เพราะ ว่า มัน นับ Head ด้วย
{
var ps = (from p in db.tblDrugs //เรียกข้อมุลที่เราต้องการมา ps (ในที่นี้ ต้องการจำนวนยาที่อยู่ในฐานข้อมูล)
where p.DruID.ToString() == lsvProductList.Items[i].SubItems[0].Text //ด้วยเงื่อนไข lsvProductList tems[0] (ข้อมูลในช่องแรก (ID ของ ยา))
select p).FirstOrDefault(); // select ลง p แล้ว p อยู่ใน ps อีกที ตาการเรียกข้อมูล ปกติของ LINQ
int drug = int.Parse(lsvProductList.Items[i].SubItems[3].Text); //นำของมูลของ Items[3] ช่องที่ 4 (รับเริ่มต้นที่ 0 1 2 3 4) เก้บใน drug
ps.DruBigUnit += drug; // นำค่าที่เก็บ ไว้ มา + กับ ข้อมูลยาที่อยู่ในฐานข้อมูล
using (TransactionScope ts = new TransactionScope()) //ทำการอัปเดทข้อมุล แบบ TransactionScope ของ LINQ
{
db.SubmitChanges(); //ทำการเปลียนแปลงค่า ทั้งหมดลง ฐานข้อมมูล...
ts.Complete(); // อันนี้ไม่รู้
} //จบบรรทัดนี้ มันก็ วน loop ไปทำ แถวที่ 2 ตามเงื่อไข for ข้างบน
}
}
|
|
|
|
|
Date :
2013-02-10 09:38:59 |
By :
kyokohoho |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|