เมื่อมีการติ๊ก Checkbox ใน DataGridview แล้วให้บันทึกลงฐานข้อมูลอะคับ ทำยังงัยครับ ด่วนน่ะครับๆๆ
รอๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ
Date :
2011-09-26 11:29:42
By :
noi014
ก่อนอื่น ต้องเขียนเปน ลูปก่อนนะคับ แล้วค่อยเช็คว่าแถวไหนบ้าง ที่มีการเลือก checkbox แล้วค่อย สั่งบันทึก
Code (VB.NET)
Dim i As Integer = 0
Dim allid As String ' ตัวแปรเก็บค่า ID
For i = 0 To Dg_bookrn.Rows.Count - 1
If CBool(Dg_bookrn.Rows(i).Cells(0).FormattedValue) Then ' เช็คว่าแถวไหนที่เลือก checkbox ให้ทำต่อไปนี้
allid = CStr(Dg_bookrn.Rows(i).Cells(3).Value.ToString) ' ตัวแปรเก็บค่า ID โดยเก็บจากเซลที่ 3 ของ ดาต้ากริด
' เขียนคำสั่ง insert ลงฐานข้อมูล ระบุ where เปน allid
End If
Next
แค่นี้ก้อได้แล้วคับ
Date :
2011-09-26 11:39:44
By :
ดด
ขอ C# หน่อยครับๆๆๆๆ ขอบคุนๆๆๆมากๆๆ
Date :
2011-09-26 11:46:24
By :
noi014
แล้วถ้าต้องการทุก เชล ล่ะครับๆๆ ต้องสร้างตัวแบบ ขึ้นมาให้แล้วเรียกใช้ใหม่่เลยหรอครับ
Date :
2011-09-26 13:32:40
By :
noi014
จากตัวโค้ด ด้านบน มันก้อวิ่งเช็คทุกแถวนะคับ ถ้ามีเช็คบ็อก ก้อจะบันทึก แต่ถ้าแถวไหนไม่ได้เช็คก้อจะไม่บันทึก
Date :
2011-09-26 14:12:40
By :
ดด
ขอ C# หน่อยครับๆๆๆๆ พอดี ไม่เคยเขียน VBครับๆๆ ช่วยอีกนิดๆๆ กำลังได้ล่ะๆๆ ของคุนล่วงน่าน่ะครับ
Date :
2011-09-26 14:23:32
By :
noi014
Code (C#)
private void btSave_Click(object sender, EventArgs e)
{
Conn = new MySqlConnection();
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
}
int i = 0;
string Std, sql, str;
for ( i = dataGridViewStd.Rows.Count - 1;i >= 0 ;i++)
if ((bool)dataGridViewStd.Rows[i].Cells[0].FormattedValue)
{
Std = dataGridViewStd.Rows[i].Cells[3].Value.ToString(); // <=มันError คับ แถวนี้ล่ะครับ ขึ้นว่า Object reference not set to an instance of an object.
str = "Server=localhost;User Id=root; Password=123123; Database=db_project; Pooling=false; Allow Zero Datetime=false;";
Conn = new MySqlConnection(str);
Conn.Open();
MySqlCommand Cmd;
sql = "INSERT INTO course_student(CrsId, StdID) VALUES(@sbj, @sid)";
Cmd = new MySqlCommand(sql, Conn);
Cmd.Parameters.AddWithValue("sbj", Std);
Cmd.Parameters.AddWithValue("sid", Std);
Conn.Close();
}
}
ประวัติการแก้ไข 2011-09-26 15:10:26
Date :
2011-09-26 15:08:46
By :
noi014
ตอบความคิดเห็นที่ : 7 เขียนโดย : noi014 เมื่อวันที่ 2011-09-26 15:08:46
รายละเอียดของการตอบ ::
รบกวนหน่อยนะครับ ผมขอตัวอย่าง code ที่เป็น c# สำหรับฐานข้อมูล Mysql
ที่ผมทำตอนนี้...ปัญหา คือ มันบันทึก...เฉพาะข้อมูลที่อยู่ใน datagrid ส่วนข้อมูลข้างนอกมันไม่บันทึกให้
รบกวนพี่ๆ..ช่วยดูให้หน่อยนะครับ...
Code (C#)
private void btnSavePay_Click(object sender, EventArgs e)
{
conn = new MySqlConnection(connectionString);
conn.Open();
//แปลงจากวันที่ พศ. เป็น คศ
string datep = datePay.Value.ToString("yyyy-MM-dd", CultureInfo.CreateSpecificCulture("en-US"));
string sql = "INSERT INTO tbl_suppay (suppay_id,suppay_date,user_name,user_get,br_id,suppay_total)" +
"VALUES" +
"('" + this.txtNoPayId.Text + "','" + datep + "','" + this.txtStaff.Text + "','" + this.txtUserGet.Text + "','" + this.cbBranch.Text + "','" + this.lbTotal.Text + "')";
cmd = new MySqlCommand(sql, conn);
//ใน datagridview
for (int i = 0; i < dgViewPay.Rows.Count; i++)
{
if ((bool)dgViewPay.Rows[i].Cells[0].FormattedValue == true)
{
conn = new MySqlConnection(connectionString);
conn.Open();
string sql1 = "INSERT INTO tbl_suppay_detail(sup_id,suppay_detail_amount,suppay_detail_id)" +
"VALUES" +
"('" + dgViewPay.Rows[i].Cells[1].Value.ToString() + "','" + dgViewPay.Rows[i].Cells[5].Value.ToString() + "','" + dgViewPay.Rows[i].Cells[7].Value.ToString() + "')";
cmd = new MySqlCommand(sql1, conn);
}//if
}//for
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("เพิ่มข้อมูลเรียบร้อยแล้ว!!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "ไม่สามารถเพิ่มข้อมูลได้!!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
conn.Close();
}
ดูจากรูปครับ
Date :
2012-10-20 12:46:46
By :
Takashi_7
ยังไม่ได้...เลย...
ใครมีแนวทางบ้างครับ...รบกวนหน่อยครับ...ขอบคุณมากครับ...
Date :
2012-10-21 10:55:39
By :
Takashi_7
Code (C#)
private void btnSavePay_Click(object sender, EventArgs e)
{
conn = new MySqlConnection(connectionString);
conn.Open();
//แปลงจากวันที่ พศ. เป็น คศ
string datep = datePay.Value.ToString("yyyy-MM-dd", CultureInfo.CreateSpecificCulture("en-US"));
string sql = "INSERT INTO tbl_suppay (suppay_id,suppay_date,user_name,user_get,br_id,suppay_total)" +
"VALUES" +
"('" + this.txtNoPayId.Text + "','" + datep + "','" + this.txtStaff.Text + "','" + this.txtUserGet.Text + "','" + this.cbBranch.Text + "','" + this.lbTotal.Text + "')";
cmd = new MySqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
}
catch
{
}
//ใน datagridview
for (int i = 0; i < dgViewPay.Rows.Count; i++)
{
if ((bool)dgViewPay.Rows[i].Cells[0].FormattedValue == true)
{
conn = new MySqlConnection(connectionString);
conn.Open();
string sql1 = "INSERT INTO tbl_suppay_detail(sup_id,suppay_detail_amount,suppay_detail_id)" +
"VALUES" +
"('" + dgViewPay.Rows[i].Cells[1].Value.ToString() + "','" + dgViewPay.Rows[i].Cells[5].Value.ToString() + "','" + dgViewPay.Rows[i].Cells[7].Value.ToString() + "')";
cmd = new MySqlCommand(sql1, conn);
}//if
}//for
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("เพิ่มข้อมูลเรียบร้อยแล้ว!!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + "ไม่สามารถเพิ่มข้อมูลได้!!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
conn.Close();
}
Date :
2012-10-24 14:01:14
By :
ห้ามตอบเกินวันละ 2 กระทู้
Load balance : Server 04