-
Recently Browsing 0 members
- No registered users viewing this page.
-
Similar Content
-
SQL Server Management Studio 22.7 brings "What's New" page, T-SQL formatting, and lots more
By Usama Jawad96,
- 3 replies
- 0 views
-
- 4 replies
- 0 views
-
Good news: JetBrains makes another IDE free for non-commercial use
By David Uzondu,
- 0 replies
- 0 views
-
AI's impact on programming language popularity revealed
By zikalify,
- ieee
- programming languages
- (and 7 more)
- 3 replies
- 0 views
-
Microsoft reveals plans for SQL Server Management Studio
By Usama Jawad96,
- microsoft
- sql server management studio
- (and 6 more)
- 12 replies
- 0 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