|
|
|
insert ข้อมูล ลง 2 table พร้อมกัน ใครก็ได้ช่วยดูให้ผมที คือผม insert อันแรกได้ แต่พออันที่สองไม่ได้ มันบอกว่า รัน transaction parallel |
|
|
|
|
|
|
|
if (dgvOrderList.Rows.Count != 0)
{
tr1 = Conn.BeginTransaction();
//sb1.Remove(0, sb1.Length());
sb1.Append("INSERT INTO tranOrder ");
sb1.Append("(Order_ID, Order_DateTime, Staff_ID, Cust_ID, ");
sb1.Append("Order_TotalPrice, Order_Status) ");
sb1.Append("VALUES (");
sb1.Append("@OrderID, ");
sb1.Append("@OrderDateTime, ");
sb1.Append("@StaffID, ");
sb1.Append("@CustID, ");
sb1.Append("@OrderTotalPrice, ");
sb1.Append("@OrderStatus);");
string sqlInsertOrder1 = sb1.ToString();
com1.CommandType = CommandType.Text;
com1.CommandText = sqlInsertOrder1;
com1.Connection = Conn;
com1.Transaction = tr1;
com1.Parameters.Clear();
com1.Parameters.Add("@OrderID", SqlDbType.VarChar).Value = Session["orderID"].ToString();
com1.Parameters.Add("@OrderDateTime", SqlDbType.DateTime).Value = DateTime.Now; //txtDate.Text.Trim();
com1.Parameters.Add("@StaffID", SqlDbType.VarChar).Value = txtStaffID.Text.Trim();
com1.Parameters.Add("@CustID", SqlDbType.VarChar).Value = Session["custID"].ToString();
com1.Parameters.Add("@OrderTotalPrice", SqlDbType.Decimal).Value = totalPrice;
com1.Parameters.Add("@OrderStatus", SqlDbType.VarChar).Value = "incomplete";
com1.ExecuteNonQuery();
tr1.Commit();
Conn.Dispose();
insertProductOrder();
}
private void insertProductOrder()
{
string strConn = "Data Source=MIXAR-PC;Initial Catalog=StockProductInfo;Integrated Security=True";
SqlConnection Conn = new SqlConnection(strConn);
if (Conn.State == ConnectionState.Open)
{
Conn.Close();
}
Conn.ConnectionString = strConn;
Conn.Open();
if (dgvOrderList.Rows.Count != 0)
{
foreach (GridViewRow r in dgvOrderList.Rows)
{
string barcode = r.Cells[0].ToString();
TextBox txtQty = (TextBox)r.FindControl("txtQuantity");
int qty = int.Parse(txtQty.Text);
Label lblTotalPrice = (Label)r.FindControl("lblPrice");
double calPrice = double.Parse(lblTotalPrice.Text);
tr2 = Conn.BeginTransaction();
//sb2.Remove(0, sb2.Length());
sb2.Append("INSERT INTO tranProductOrder ");
sb2.Append("(Order_ID, Prod_Barcode, PO_ProdQty, ");
sb2.Append("PO_TotalPrice, Prod_Complete) ");
sb2.Append("VALUES (");
sb2.Append("@OrdID, ");
sb2.Append("@ProdBarcode, ");
sb2.Append("@ProdQuantity, ");
sb2.Append("@ProdPrice, ");
sb2.Append("@ProdStatus)");
string sqlInsertOrder2 = sb2.ToString();
com2.CommandType = CommandType.Text;
com2.CommandText = sqlInsertOrder2;
com2.Connection = Conn;
com2.Transaction = tr2;
com2.Parameters.Clear();
com2.Parameters.Add("@OrdID", SqlDbType.VarChar).Value = Session["orderID"].ToString();
com2.Parameters.Add("@ProdBarcode", SqlDbType.VarChar).Value = barcode;
com2.Parameters.Add("@ProdQuantity", SqlDbType.Int).Value = qty;
com2.Parameters.Add("@ProdPrice", SqlDbType.Decimal).Value = calPrice;
com2.Parameters.Add("@ProdStatus", SqlDbType.VarChar).Value = "incomplete";
com2.ExecuteNonQuery();
tr2.Commit();
Conn.Dispose();
}
}
}
ใครก็ได้ช่วยดูให้ผมที
คือผม insert อันแรกได้
แต่พออันที่สองไม่ได้
มันบอกว่า รัน transaction parallel ไม่ได้
แก้ไงดีครับ ผมจำเป็นต้อง insert 2 table พร้อมกันด้วย
Tag : - - - -
|
|
|
|
|
|
Date :
2009-01-26 22:33:09 |
By :
mixarstudio |
View :
3285 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำไมคุณไม่นำ Query ไปไว้ใน Transaction เดียวกันครับ คุณเปิดแล้วก็ปิด แล้วก็เปิดอีกทีหนึ่งครับ
|
|
|
|
|
Date :
2009-01-27 09:47:26 |
By :
อิอิ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะ insert ครั้งเดียวให้ลงหลายตารางควรทำอย่างไรครับ
|
|
|
|
|
Date :
2009-03-24 22:48:19 |
By :
wan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็ทำแบบข้างบนที่ผมโพสไว้ไงครับ
|
|
|
|
|
Date :
2009-03-24 23:13:30 |
By :
mixarstudio |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
^^^^^
^^^^^
Thank kha.
|
|
|
|
|
Date :
2009-11-24 10:28:18 |
By :
noonoy42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|