|
|
|
รบกวนเพื่อนๆพี่ๆช่วยทีครับ ทำไม่ได้จริงๆ ครับผม C#+ Sql Server2005.. ผมต้องการ insert ข้อมูลที่อยู่ใน datagrid ที่ select มาจาก tables1 ให้เข้าไปบันทึกอยู่ใน tables2 ครับ |
|
|
|
|
|
|
|
ผมต้องการ insert ข้อมูลที่อยู่ใน datagrid ที่ select มาจาก tables1 ให้เข้าไปบันทึกอยู่ใน tables2 ครับ ทำยังไงก้อยังไม่สักทีรบกวนช่วยด้วยครับโค๊ดตามนี้เลยนะครับถูกผิดยังงัยไม่รู้ช่วยแนะนำด้วยครับ
Code (C#)
private void SaveDatabase()
{
if (MessageBox.Show("คุณต้องการบันทึกข้อมูล! ใช่หรือไม่","ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
tr = Conn.BeginTransaction();
try
{
sb = new StringBuilder();
sb.Append("INSERT INTO Purchase(PRNumber,ColorID,ColorDetial,Quantity,Unit,OrderDate,OrderMount)SELECT * FROM Temp");
sb.Append("WHERE (PRNumber=@PRNumber)");
string sqlAdd;
sqlAdd = sb.ToString();
com.CommandText = sqlAdd;
com.CommandType = CommandType.Text;
com.Transaction = tr;
com.Parameters.Clear();
com.Parameters.Add("@PRNumber", SqlDbType.NVarChar);
com.Parameters.Add("@ColorID", SqlDbType.NVarChar);
com.Parameters.Add("@ColorDetial", SqlDbType.NVarChar);
com.Parameters.Add("@Quantity", SqlDbType.NVarChar);
com.Parameters.Add("@Unit", SqlDbType.NVarChar);
com.Parameters.Add("@OrderDate", SqlDbType.NVarChar);
com.Parameters.Add("@OrderMount", SqlDbType.NVarChar);
com.ExecuteNonQuery();
tr.Commit();
MessageBox.Show("เพิ่มข้อมูลใหม่เรียบร้อยแล้วครับ", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("เกิดข้อผิดพลาด เนื่องจาก" + ex.Message, "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
tr.Rollback();
}
txtId.Focus();
}
}
Tag : .NET, Ms SQL Server 2005, Crystal Report, Win (Windows App), C#
|
|
|
|
|
|
Date :
2011-05-03 16:08:47 |
By :
woraponc |
View :
1041 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พระเจ้าช่วยลูกด้วย ไม่มีใครตอบเลยหรอครับ
|
|
|
|
|
Date :
2011-05-04 10:06:48 |
By :
woraponc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหอๆ จะบอกว่า หนูงงกับการ INSERT อ่ะค่ะ ไม่เคยเขียนแบบนี้เลยอ่ะค่ะ
คือ เอาแบบแนวทางหนูนะคะ
ปกติแล้ว ถ้าต้องการจะนำค่ามาจากไหน ก็จะ Select มาเก็บไว้ในตัวแปรหนึ่งๆก่อนค่ะ
แล้วค่อยเอาค่าจาก ตัวแปรมา insert ลงอีกที
แต่แบบนี้ จะต้อง query หลายทีหน่อยนะคะ โค๊ดก็จะยาวขึ้นด้วย
ก็ลองเอาไปประยุกต์ดูละกันนะคะ
|
|
|
|
|
Date :
2011-05-04 11:24:40 |
By :
roongine |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้แล้วครับผมอันที่จริงมันต้องแบบนี้ครับ 5555+ งมมาหลายวันเก็บประสบการณ์มาแบบมั่วๆ 5555
Code (C#)
private void SaveDatabase()
{
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("INSERT INTO Purchase(PRNumber,ColorID,ColorDetial,Quantity,Unit,OrderDate,OrderMount)");
sb.Append("SELECT PRNumber,ColorID,ColorDetial,Quantity,Unit,OrderDate,OrderMount FROM Temp");
string sqlAdd;
sqlAdd = sb.ToString();
com.CommandText = sqlAdd;
com.CommandType = CommandType.Text;
com.Transaction = tr;
com.ExecuteNonQuery();
tr.Commit();
MessageBox.Show("เพิ่มข้อมูลใหม่เรียบร้อยแล้วครับ", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
DeleteData();
ClearData();
ShowData();
GetNum();
}
catch(Exception ex)
{
MessageBox.Show("เกิดข้อผิดพลาด เนื่องจาก"+ex.Message, "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
tr.Rollback();
}
txtId.Focus();
}
}
พอมันบันทึกเสร็จก้อเขียนโค้ดให้มันลบของเก่าที่อยู่ในตาราง Temp ทิ้ง แบบนี้ครับ
Code (C#)
private void DeleteData()
{
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("DELETE Temp");
string sqlDelete;
sqlDelete = sb.ToString();
com.CommandText = sqlDelete;
com.CommandType = CommandType.Text;
com.Connection = Conn;
com.Transaction = tr;
com.ExecuteNonQuery();
tr.Commit();
MessageBox.Show("คุณลบข้อมูลเก่าเรียบร้อยแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
tr.Rollback();
MessageBox.Show("เกิดข้อผิดพลาด เนื่องจาก" + ex.Message, "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
txtNumber.Focus();
}
}
|
|
|
|
|
Date :
2011-05-04 15:33:39 |
By :
woraponc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|