รบกวนหน่อยครับ...Add,edit,delete data item in the DataGridView
คือผมประยุกต์ code จากเว็บนี้
http://janawat.wordpress.com/category/windows-application/
รบกวนหน่อยครับ...
จาก code ข้างบนนะครับ ซึ่งผมมาประยุกต์เป็นปุ่ม checkbox แทน
เมื่อมีการติ๊ก checkbox เราสามารไปกดปุ่ม ฺ button เพื่อบันทึกข้อมูลลง DB
จาก code
Code (C#)
private void dgViewPay_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1)
{
//ปุ่ม checkbox
if (e.ColumnIndex == 0)
{
txtPayId.Text = dgViewPay["รหัสพัสดุ", e.RowIndex].Value.ToString();
txtPayName.Text = dgViewPay["ชื่อ", e.RowIndex].Value.ToString();
txtPaytype.Text = dgViewPay["ประเภท", e.RowIndex].Value.ToString();
txtPayBal.Text = dgViewPay["คงเหลือ", e.RowIndex].Value.ToString();
txtPayAmount.Text = dgViewPay["จำนวน", e.RowIndex].Value.ToString();
txtPayUnit.Text = dgViewPay["หน่วย", e.RowIndex].Value.ToString();
/*string str = "1:" + txtPayId.Text + ",2:" + txtPayName.Text + ",3:" + txtPaytype.Text + ",4:" + txtPayBal.Text + ",5:" + txtPayAmount.Text + ",6:" + txtPayUnit.Text;
MessageBox.Show(str);*/
}
//ปุ่ม Delete
if (e.ColumnIndex == 1)
{
if (MessageBox.Show("คุณต้องการยกเลิกข้อมูลใช่หรือไม่?", "คำยืนยัน...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
var q = pay.Where(t => t.รหัสพัสดุ == dgViewPay["รหัสพัสดุ", e.RowIndex].Value.ToString()).FirstOrDefault();
if (q != null)//ถ้ามีข้อมุล
{
pay.Remove(q);
//เรียกเมธอดผูกข้อมูลของ dataGridView1 อีกครั้ง...
DataBinding();
}
}
}
}
ปัญหาคือ ผมจะสร้างปุ่ม button เพื่อที่จะอ้างอิง checkbox ข้างบน แล้วไป insert ลง DB
Code (C#)
private void btnSavePay_Click(object sender, EventArgs e)
{
}
Tag : .NET, C#, Windows
ประวัติการแก้ไข 2012-10-08 16:43:53
Date :
2012-10-08 16:42:27
By :
Takashi_7
View :
1662
Reply :
5
Code (C#)
if (this.dataGridView1.Rows[0].Cells[0].Value == true)
ประมาณนี้ครับ แทรกก่อนที่จะ Update
Date :
2012-10-10 06:14:44
By :
mr.win
ใส่แล้ว...ยัง Error
Date :
2012-10-11 11:16:47
By :
Takashi_7
อันนี้..แก้ได้แล้ว...แค่ใส่
Code (C#)
for (int i = 0; i < dgViewPay.Rows.Count; i++)
{
if ((bool)dgViewPay.Rows[i].Cells[0].FormattedValue == true)
{
//action
}
}
แต่มีปัญหา ถามอีกครับ
จากรูปข้างบน เมื่อเราพิมพ์จำนวนเบิก 12 , 13 , 15 แล้วกดปุ่มเพิ่มรายการจะเห็นว่าจำนวนรวมมันไม่ตรงกัน แต่ถ้าเรา พิมพ์ เลขเหมือนทุกครั้ง มันจะคำนวณถูก เช่น 12 , 12 ,12 จำนวนรวม เป็น 36
รบกวนพี่ๆๆ...ช่วยดู code ให้หน่อนน่ะ ว่า ผม วนลูปผิด..หรือป่าว
Code (C#)
public frmGetSup(string strTextBox)
{
InitializeComponent();
// initialise
initialiseTable(myTable);
// set source
dgViewPay.DataSource = myTable;
}
Code (C#)
private void initialiseTable(DataTable table)
{
// add all columns
table.Columns.Add(new DataColumn("รหัสพัสดุ", typeof(string)));
table.Columns.Add(new DataColumn("ชื่อ", typeof(string)));
table.Columns.Add(new DataColumn("ประเภท", typeof(string)));
table.Columns.Add(new DataColumn("คงเหลือ", typeof(string)));
table.Columns.Add(new DataColumn("จำนวน", typeof(string)));
table.Columns.Add(new DataColumn("หน่วย", typeof(string)));
}
Code (C#)
private void btnAddPay_Click(object sender, EventArgs e)
{
if (txtPayAmount.Text == "")
{
MessageBox.Show("กรุณาป้อนตัวเลข!!!");
}
else
{
// create a row
DataRow row = myTable.NewRow();
row[0] = txtPayId.Text;
row[1] = txtPayName.Text;
row[2] = txtPaytype.Text;
row[3] = txtPayBal.Text;
row[4] = txtPayAmount.Text;
row[5] = txtPayUnit.Text;
// add row to table
myTable.Rows.Add(row);
//code วนลูปตรงนี้...ผมวนลูปผิดมั้ยครับ
//------------------------------------------------------------
int total = 0;
for (int i = 0; i < dgViewPay.Rows.Count; i++)
{
int amount = Convert.ToInt32(txtPayAmount.Text);
total += amount;
}
lbTotal.Text = total.ToString();
//-----------------------------------------------------------
//ล้างค่าบน TestBox
ClearText();;
}
}
Date :
2012-10-19 17:45:01
By :
Takashi_7
แฮ่ะๆๆ...ได้แล้ว ครับ
ใส่ที่ลูป for
Code (C#)
//------------------------------------------------------------
int total = 0;
for (int i = 0; i < dgViewPay.Rows.Count; i++)
{
total = total + Convert.ToInt32(dgViewPay.Rows[i].Cells[5].Value.ToString());
}
lbTotal.Text = total.ToString();
//-----------------------------------------------------------
Date :
2012-10-19 17:56:26
By :
Takashi_7
Date :
2012-10-20 08:08:02
By :
mr.win
Load balance : Server 00