Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > รบกวนผู้รู้หน่อยครับ โค้ดที่ผมเขียนมา มันเกิด Error ที่ .ExcuteNonQuery() .. The transaction is either not associated with the current connection or has been completed



 

รบกวนผู้รู้หน่อยครับ โค้ดที่ผมเขียนมา มันเกิด Error ที่ .ExcuteNonQuery() .. The transaction is either not associated with the current connection or has been completed

 



Topic : 078098



โพสกระทู้ ( 35 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook



Code
The transaction is either not associated with the current connection or has been completed


Error

ตามรูปเลยครับ ไม่ทราบว่า ผมควรจะแก้ยังไงดี



Tag : .NET, Ms SQL Server 2008, VB.NET, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-05-07 15:02:22 By : millanium2 View : 2148 Reply : 7
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เอา Code มาดูครับ เหมือนกับการการประกาศ Transaction และ เรียกใช้งาน Transaction ไม่ถุกต้องครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-07 15:13:44 By : mr.win
 


 

No. 2



โพสกระทู้ ( 35 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

อันนี้เป็นโค้ดในหน้าฟอร์มที่ผมใช้
Code (VB.NET)
Option Explicit On
Imports System.Text
Imports System.Data
Imports System.Data.SqlClient

Public Class frmCustomer
    ' Private Const conStr As String = "Data Source=HOME-PC\SQLSERVER;Initial Catalog=MusicTreading;Integrated Security=True"
    Private ReadOnly Property Conn() As SqlConnection
        Get
            Dim ConnToFetch As New SqlConnection(strCon)
            ConnToFetch.Open()
            Return ConnToFetch
        End Get
    End Property

    Public Function GetData() As DataView
        Dim sqlQry = "select * from Customer"
        Dim ds As New DataSet
        Dim dv As DataView
        Try
            Dim Comm As New SqlCommand()
            Dim da = New SqlDataAdapter()
            With Comm
                .CommandText = sqlQry
                .Connection = Conn
            End With
            da.SelectCommand = Comm
            da.Fill(ds)
            dv = ds.Tables(0).DefaultView
        Catch ex As Exception
            Throw ex
        End Try
        Return dv
    End Function

    Private Sub ShowColumnsHeads()
        If dgvCustomer.RowCount > 0 Then
            With dgvCustomer
                .Columns(0).HeaderText = "รหัสลูกค้า"
                .Columns(1).HeaderText = "ชื่อ"
                .Columns(2).HeaderText = "นามสกุล"
                .Columns(3).HeaderText = "ที่อยู่"
                .Columns(4).HeaderText = "หมายเลขโทรศัพท์"
                .Columns(5).HeaderText = "E-mail"
                .Columns(0).Width = 100
                .Columns(1).Width = 120
                .Columns(2).Width = 150
                .Columns(3).Width = 250
                .Columns(4).Width = 120
                .Columns(5).Width = 120

            End With
        End If
    End Sub
    Private Sub frmCustomer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dgvCustomer.DataSource = GetData()
        ShowColumnsHeads()
    End Sub

    Private Sub dgvCustomer_CellMouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvCustomer.CellMouseUp
        If e.RowIndex = -1 Then Exit Sub
        With dgvCustomer
            txtCusID.Text = .Rows.Item(e.RowIndex).Cells("CusID").Value.ToString()
            txtCusName.Text = .Rows.Item(e.RowIndex).Cells("CusName").Value.ToString()
            txtCusLastName.Text = .Rows.Item(e.RowIndex).Cells("CusLastName").Value.ToString()
            txtCusAddress.Text = .Rows.Item(e.RowIndex).Cells("CusAddress").Value.ToString()
            txtCusPhone.Text = .Rows.Item(e.RowIndex).Cells("CusPhone").Value.ToString()
            txtCusEmail.Text = .Rows.Item(e.RowIndex).Cells("CusEmail").Value.ToString()
            txtCusName.Focus()
            txtCusName.SelectAll()
        End With

    End Sub

    Sub AutoID()


        Dim tmp As Integer
        Sql = "SELECT Max(CusID) From Customer"
        Try
            Call dbOpen()
            Com = New SqlCommand(Sql, Conn)
            reader = Com.ExecuteReader()
            tmp = reader.FieldCount - 1

            If tmp < 0 Then
                txtCusID.Text = "00001"
            Else
                While reader.Read
                    txtCusID.Text = ((CInt((reader(0)).ToString.Substring(1))) + 1).ToString("00000")
                End While
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            MsgBox("Error Auto ID")
        End Try
    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        Call AutoID()
        txtCusName.Focus()
    End Sub

    Private Sub InsertData()
        If MessageBox.Show("คุณต้องการเพิ่มข้อมูลลูกค้าใช่หรืไม่", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            tr = Conn.BeginTransaction

            With sb
                .Remove(0, sb.Length)
                .Append("insert into Customer (CusID,CusName,CusLastName,CusAddress,CusPhone,CusEmail)")
                .Append("values (@CusID,@CusName,@CusLastName,@CusAddress,@CusPhone,@CusEmail)")
                Dim sqlAdd As String
                sqlAdd = sb.ToString()

                With Com
                    .CommandText = sqlAdd
                    .CommandType = CommandType.Text
                    .Connection = Conn
                    .Transaction = tr
                    .Parameters.Clear()
                    .Parameters.Add("@CusID", SqlDbType.Char).Value = txtCusID.Text.Trim()
                    .Parameters.Add("@CusName", SqlDbType.VarChar).Value = txtCusName.Text.Trim()
                    .Parameters.Add("@CusLastName", SqlDbType.VarChar).Value = txtCusLastName.Text.Trim()
                    .Parameters.Add("@CusAddress", SqlDbType.VarChar).Value = txtCusAddress.Text.Trim()
                    .Parameters.Add("@CusPhone", SqlDbType.VarChar).Value = txtCusPhone.Text.Trim()
                    .Parameters.Add("@CusEmail", SqlDbType.VarChar).Value = txtCusEmail.Text.Trim()
                    .ExecuteNonQuery()
                End With
            End With
        End If
    End Sub

    Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        Call InsertData()
    End Sub
End Class



อันนี้เป็นโค้ดใน Module ครับ
Code (VB.NET)
Option Explicit On
Imports System.Data
Imports System.Data.SqlClient
Imports System.Transactions
Imports System.Text

Module Module1
    Public Conn As New SqlConnection()
    Public Com As New SqlCommand()
    Public strCon As String = "Data Source=HOME-PC\SQLSERVER;Initial Catalog=MusicTreading;Integrated Security=True"
    Public ds As New DataSet()
    Public sb As New StringBuilder()
    Public Sql As String
    Public reader As SqlDataReader
    Public tr As SqlTransaction

    Public Sub dbOpen()
        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strCon
            .Open()
        End With
    End Sub
End Module



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-07 15:23:12 By : millanium2
 

 

No. 3



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


รู้สึกว่าต้อง ประกาศ SqlTransaction ไว้ในคลาสที่เราจะใช้นะคับ ยังไงลองแก้ดู และเพื่อความชัวถ์ รอให้ พี่วิน มาตอบคับ

Code (VB.NET)
 Dim tr As SqlTransaction 'ประกาศ
  tr = Conn.BeginTransaction() 'เรียกใช้



ประวัติการแก้ไข
2012-05-07 15:34:05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-07 15:33:26 By : slipknot1256
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (VB.NET)
    ' Private Const conStr As String = "Data Source=HOME-PC\SQLSERVER;Initial Catalog=MusicTreading;Integrated Security=True"
    Dim ConnToFetch As SqlConnection
    
    Private ReadOnly Property Conn() As SqlConnection
        Get
            ConnToFetch = New SqlConnection(strCon)
            ConnToFetch.Open()
            Return ConnToFetch
        End Get
    End Property


ลองดูแบบนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-07 20:27:59 By : mr.win
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ได้ไม่ได้ยังไงบอกด้วยครับ อยากรู้เหมือนกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-07 22:36:16 By : mr.win
 


 

No. 6



โพสกระทู้ ( 35 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ขอบคุณครับ ใช้ได้แล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-07 23:27:37 By : millanium2
 


 

No. 7



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เยี่ยม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-08 05:51:04 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนผู้รู้หน่อยครับ โค้ดที่ผมเขียนมา มันเกิด Error ที่ .ExcuteNonQuery() .. The transaction is either not associated with the current connection or has been completed
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่