-
Recently Browsing 0 members
- No registered users viewing this page.
-
Similar Content
-
Distributed SQL: The architecture behind MariaDB Xpand — Free Whitepaper
By News Staff,
- ebook offer
- sponsored
- (and 4 more)
- 0 replies
- 9 views
-
- 0 replies
- 10 views
-
- 8 replies
- 2,423 views
-
Save 98% off this multi-course Premium Coding Skills Bundle
By News Staff,
- neowin deals
- online courses
- (and 12 more)
- 0 replies
- 4 views
-
This Premium Google Sheets & Microsoft Excel Certification Bundle is Price Dropped to $20
By News Staff,
- google sheets
- microsoft excel
- (and 9 more)
- 0 replies
- 2 views
-
Question
limok
Hi,
I'm having trouble with the code below used in a .Net 4.5.2 website. The error I get is that the sql transaction is no longer useable. I'm guessing the first insert is failing and the app isn't rolling back the transaction properly.
Secondly - the bizarre thing I can pass the exact same values from one machine that will work but from another machine it will not.
if you need more info ask away.
thanks.
using (SqlConnection connection = new SqlConnection(cs)) { connection.Open(); SqlCommand cmd = connection.CreateCommand(); SqlTransaction tran; tran = connection.BeginTransaction("sampleTransaction"); cmd.Connection = connection; cmd.Transaction = tran; try { cmd.CommandText = @"INSERT INTO dbo.sk_srf_headm(order_ref, customer, reason, returningSample, comments, submitted_by, dateReq, requested_by) VALUES(@order_ref, @customer, @reason, @returning_sample, @comments, @submitted_by, @date_req, @requested_by)"; cmd.Parameters.AddWithValue("@order_ref", order.orderRef); cmd.Parameters.AddWithValue("@customer", order.customer); cmd.Parameters.AddWithValue("@date_req", SqlDbType.DateTime).Value = order.dateReq; cmd.Parameters.AddWithValue("@reason", order.reason); cmd.Parameters.AddWithValue("@returning_sample", order.returningSample); cmd.Parameters.AddWithValue("@comments", order.comments); cmd.Parameters.AddWithValue("@submitted_by", order.salesExec); cmd.Parameters.AddWithValue("@requested_by", order.salesExecFor); cmd.ExecuteNonQuery(); int line_no = 1; foreach (orderItem item in order.Items.getItems()) { cmd.CommandText = @"INSERT INTO dbo.sk_srf_detm(order_ref, line_no, product, description, quantity, oc_qty, freeStock, locations) VALUES(@srfRef, @line_no, @product, @description, @quantity, @oc_qty, @freeStock, @locations)"; cmd.Parameters.AddWithValue("@srfRef", order.orderRef); cmd.Parameters.AddWithValue("@line_no", line_no); cmd.Parameters.AddWithValue("@product", item.productNumber); cmd.Parameters.AddWithValue("@description", item.description); cmd.Parameters.AddWithValue("@quantity", item.quantity); cmd.Parameters.AddWithValue("@oc_qty", item.oc_qty); cmd.Parameters.AddWithValue("@freeStock", item.freeStock); cmd.Parameters.AddWithValue("@locations", item.locations); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); line_no++; } tran.Commit(); return true; } catch (Exception ex) { try { tran.Rollback(); } catch { } return false; } }
Link to comment
https://www.neowin.net/forum/topic/1295266-c-sqltransaction-has-completed/Share on other sites
27 answers to this question
Recommended Posts