|
|
|
รบกวนพี่ทีมงานด้วยครับ C# + mysql 5 +odbc 3.51 window application update ข้อมูลไม่ได้ครับ |
|
|
|
|
|
|
|
คลิกเลือกข้อมูลที่จะแก้ไขใน datagrid แล้วแสดงข้อมูลใน textbox ครับแล้วจึงแก้ไขแต่เวลาเรากดปุ่มแก้ไขเพื่อให้บันทึกข้อมูล
มันฟ้องเวลากดปุ่มแก้ไขข้อมูล ว่ารหัสที่ป้อนไม่ถูกต้องครับ ทั้งที่เป็นการ update ไม่ใช่เพิ่มข้อมูลใหม่ แต่ถ้าเป็นการเพิ่มข้อมูลสามารถทำได้ปกติครับ
Code (C#)
private void tseditTaxs_Click(object sender, EventArgs e)
{
if (txtCompcode.Text.Trim() == "")
{
MessageBox.Show("คุณยังไม่ได้เลือกข้อมูล ! กรุณาเลือกข้อมูลที่ต้องการแก้ไข", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtCompcode.Focus();
return;
}
if (txtCompname.Text.Trim() == "")
{
MessageBox.Show("กรุณาป้อนเลขประจำ", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtComptaxno.Focus();
return;
}
if (txtCompname.Text.Trim() == "")
{
MessageBox.Show("กรุณาป้อนชื่อ", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtCompname.Focus();
return;
}
if (txtCompaddr.Text.Trim() == "")
{
MessageBox.Show("กรุณาป้อนที่อยู่", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtCompaddr.Focus();
return;
}
if (txtComptelephon.Text.Trim() == "")
{
MessageBox.Show("กรุณาป้อนเบอร์โทรศัพท์", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtComptelephon.Focus();
return;
}
if (MessageBox.Show("คุณต้องการแก้ไขข้อมูล ใช่หรือไม่?", "ยืนยันข้อมูล", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
tr = Conn.BeginTransaction();
try
{
sb = new StringBuilder();
sb.Remove(0, sb.Length);
sb.Append("update company");
sb.Append(" set CompName=?,");
sb.Append(" CompAddr=?,");
sb.Append(" CompTel=?,");
sb.Append(" CompFax=?,");
sb.Append(" CompTaxno=?");
sb.Append(" where (CompID=?)");
string sqlEdit;
sqlEdit = sb.ToString();
com.CommandText = sqlEdit;
com.CommandType = CommandType.Text;
com.Connection = Conn;
com.Transaction = tr;
com.Parameters.Clear();
com.Parameters.Add("@CompID",OdbcType.VarChar).Value = txtCompcode.Text.Trim();
com.Parameters.Add("@CompName",OdbcType.VarChar).Value = txtCompname.Text.Trim();
com.Parameters.Add("@CompAddr",OdbcType.VarChar).Value = txtCompaddr.Text.Trim();
com.Parameters.Add("@CompTel",OdbcType.VarChar).Value = txtComptelephon.Text.Trim();
com.Parameters.Add("@CompFax",OdbcType.VarChar).Value = txtCompfax.Text.Trim();
com.Parameters.Add("@CompTaxno",OdbcType.VarChar).Value = txtComptaxno.Text.Trim();
int result;
result = com.ExecuteNonQuery();
if (result == 0)
{
tr.Rollback();
MessageBox.Show("รหัสที่คุณป้อน ไม่ถูกต้อง !", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtCompcode.Focus();
}
else
{
com.ExecuteNonQuery();
tr.Commit();
MessageBox.Show("คุณแก้ไขข้อมูลเรียบร้อยแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
ClearAllData();
ShowData();
FormatdgvComplist();
}
}
catch (Exception ex)
{
tr.Rollback();
MessageBox.Show("เกิดข้อผิดพลาด เนื่องจาก" + ex.Message, "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
txtCompcode.Focus();
}
Tag : .NET, MySQL, C#, VS 2008 (.NET 3.x)
|
|
|
|
|
|
Date :
2010-11-10 13:12:00 |
By :
woraponc |
View :
1273 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้แล้วครับ Code (C#)
sb=new StringBuilder ();
sb.Remove(0,sb.Length);
sb.Append("UPDATE tax");
sb.Append(" SET CompID='"+txtCompId.Text+"',");
sb.Append(" CompName='"+txtCompname.Text+"',");
|
|
|
|
|
Date :
2010-11-11 16:43:38 |
By :
woraponc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ้าว สุดท้ายไม่ใช้ Parameter แล้ว
|
|
|
|
|
Date :
2010-11-11 16:49:27 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่ตอนนี้มีปัญหาใหญ่กว่าครับคือ
เก็บข้อมูล checkbox ลงฐานข้อมูลคือ มี check box8 อัน แยกเก็บอันละ feild ข้อมูล คือ Checkbox1 = B1 B1 คือชื่อ field
การเพิ่มข้อมูลแต่ละครั้ง เราจะเลือกเพียง 1 checkbox และเก็บข้อมูลจาก checkbox ที่ถูกเลือก ลง ฐานข้อมูล เป็นค่า 1
ถ้าเช็คบ็อกอันไหนไม่ถูกเลือกให้เก็บค่าว่างเป็น DBnull.values;
ปัญหาคือตอนเพิ่มข้อมูลสามารถทำได้ตามต้องการครับ มีปัญหาแต่ตอนแก้ไข สมมุติว่าตอนเพิ่มข้อมูลเราเลือก checkbox ตัวที่ 1
แต่ถ้าตอนแก้ไขโดยต้องการ เปลียนจาก checkbox 1 มาเป็น checkbox 2 แล้ว update ลงฐานข้อมูล ที่ฐานข้อมูลมันจะถูกเก็บเป็นค่าTrue กับ false ครับ มันไม่เป็น 1 กับ DBnull เหมือนตอนเพิ่มข้อมูลครับ
Code (C#)
sb.Append(" B1='" +chkB1.Checked+ "',");
sb.Append(" B2='" +chkB2.Checked+ "',");
sb.Append(" B3='" +chkB3.Checked+ "',");
sb.Append(" B4='" +chkB4.Checked+ "',");
sb.Append(" B5='" +chkB5.Checked+ "',");
sb.Append(" B6='" +chkB6.Checked+ "',");
sb.Append(" B7='" +chkB7.Checked+ "',");
sb.Append(" B8='" +chkB8.Checked+ "'");
sb.Append(" WHERE (DocNum='"+txtDocno.Text+"')");
string sqlEdit;
sqlEdit = sb.ToString();
com.CommandText = sqlEdit;
com.CommandType = CommandType.Text;
com.Connection = Conn;
com.Transaction = tr;
com.Parameters.Clear();
if (chkB1.Checked == true)
{
com.Parameters.Add("?B1", OdbcType.VarChar).Value = "1";
}
if (chkB1.Checked == false)
{
com.Parameters.Add("?B1", OdbcType.VarChar).Value = DBNull.Value;
}
if (chkB2.Checked == true)
{
com.Parameters.Add("?B2", OdbcType.VarChar).Value = "1";
}
if (chkB2.Checked == false)
{
com.Parameters.Add("?B2", OdbcType.VarChar).Value = DBNull.Value;
}
if (chkB3.Checked == true)
{
com.Parameters.Add("?B3", OdbcType.VarChar).Value = "1";
}
if (chkB3.Checked == false)
{
com.Parameters.Add("?B3", OdbcType.VarChar).Value = DBNull.Value;
}
if (chkB4.Checked == true)
{
com.Parameters.Add("?B4", OdbcType.VarChar).Value = "1";
}
if (chkB4.Checked == false)
{
com.Parameters.Add("?B4", OdbcType.VarChar).Value = DBNull.Value;
}
if (chkB5.Checked == true)
{
com.Parameters.Add("?B5", OdbcType.VarChar).Value = "1";
}
if (chkB5.Checked == false)
{
com.Parameters.Add("?B5", OdbcType.VarChar).Value =DBNull.Value;
}
if (chkB6.Checked == true)
{
com.Parameters.Add("?B6", OdbcType.VarChar).Value = "1";
}
if (chkB6.Checked == false)
{
com.Parameters.Add("?B6", OdbcType.VarChar).Value =DBNull.Value;
}
if (chkB7.Checked == true)
{
com.Parameters.Add("?B7", OdbcType.VarChar).Value = "1";
}
if (chkB7.Checked == false)
{
com.Parameters.Add("?B7", OdbcType.VarChar).Value =DBNull.Value;
}
if (chkB8.Checked == true)
{
com.Parameters.Add("?B8", OdbcType.VarChar).Value = "1";
}
if (chkB8.Checked == false)
{
com.Parameters.Add("?B8", OdbcType.VarChar).Value =DBNull.Value;
}
int result;
result = com.ExecuteNonQuery();
|
|
|
|
|
Date :
2010-11-11 16:59:19 |
By :
woraponc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มีใครมาช่วยเลย ว้า แย่จัง
|
|
|
|
|
Date :
2010-11-17 16:27:42 |
By :
woraponc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|