HOME > .NET Framework > Forum > ช่วยหน่อยค่ะ เออเร่อ "ExecuteNonQuery requires an open and available Connection. The connection's current state is closed." [VB 2010]
ช่วยหน่อยค่ะ เออเร่อ "ExecuteNonQuery requires an open and available Connection. The connection's current state is closed." [VB 2010]
Public Class edittopicdata
Private Sub UpdateBinding()
'-- เนื่องจากเราสามารถ Binding ข้อมูลกับคอนโทรลได้เพียงครั้งเดียว
'-- ซึ่งหากจะ Binding ใหม่ต้องยกเลิกการ Binding อันเดิมก่อน
TopicIDTextBox.DataBindings.Clear()
NumberTopicTextBox.DataBindings.Clear()
TopicNameTextBox.DataBindings.Clear()
NumberExamTextBox.DataBindings.Clear()
ScoreExamTextBox.DataBindings.Clear()
DateModiflyDateTimePicker.DataBindings.Clear()
Dim sql As String
sql = "SELECT * FROM TableTopic"
command = New SqlCommand(sql, connection)
adapter = New SqlDataAdapter(command)
dataSt = New DataSet()
adapter.Fill(dataSt, "Topic")
bindingSrc = New BindingSource()
bindingSrc.DataSource = dataSt.Tables("Topic")
TopicIDTextBox.DataBindings.Add("Text", bindingSrc, "TopicID")
NumberTopicTextBox.DataBindings.Add("Text", bindingSrc, "NumberTopic")
TopicNameTextBox.DataBindings.Add("Text", bindingSrc, "TopicName")
NumberExamTextBox.DataBindings.Add("Text", bindingSrc, "NumberExam")
ScoreExamTextBox.DataBindings.Add("Text", bindingSrc, "ScoreExam")
DateModiflyDateTimePicker.DataBindings.Add("Value", bindingSrc, "DateModifly")
End Sub
Private Sub edittopicdata_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conStr As String = "Data Source=.\SQLEXPRESS;" & _
"AttachDbFilename=C:\Users\phanthad\Desktop\project\ISMproject\ISMDatabase.mdf;" & _
"Integrated Security=True;User Instance=True;"
connection = New SqlConnection(conStr)
connection.Open()
'-- ให้ปุุ่มบันทึกใช้งานไม่ได้ก่อน เพราะต้องเข้าสู่ขั้นตอนการเพิ่่มข้อมูลก่อนจึงจะเปลี่ยนกลับมาใช้ได้
ButtonSave.Enabled = False
'-- อ่านข้อมูลมาแสดง โดยเรียกโพรซีเยอร์ที่เราได้สร้างเตรียมไว้แล้วมาใช้งาน
End Sub
Private Sub ButtonSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSave.Click
'-- ตรวจสอบว่าใส่ข้อมูลครบหรือไม่ โดยโพรซีเยอร์ IsDataComplete() แยกไปเขียนไว้ต่างหาก
If IsDataComplete() = False Then
Exit Sub
End If
'-- สร้างคำสั่ง SQL สำหรับการเพิ่มข้อมูลแบบใช้พารามิเตอร์
' Dim sql As String
Dim cm As New SqlCommand
sql = "INSERT INTO TableTopic (TopicID, NumberTopic, TopicName, NumberExam, ScoreExam, DateModifly)"
sql &= "VALUES('" & TopicIDTextBox.Text & "','" & NumberTopicTextBox.Text & "','" & TopicNameTextBox.Text & "','" & NumberExamTextBox.Text & "','" & ScoreExamTextBox.Text & "','" & DateModiflyDateTimePicker.Value & "')"
If MessageBox.Show("คุณต้องการเพิ่มข้อมูลใหม่ใช่หรือไม่?", "ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
With cm
.CommandType = CommandType.Text
.CommandText = sql
.Connection = connection
.ExecuteNonQuery()
End With
MessageBox.Show("เพิ่มข้อมูลแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
TopicIDTextBox.Clear()
NumberTopicTextBox.Clear()
TopicNameTextBox.Clear()
NumberExamTextBox.Clear()
ScoreExamTextBox.Clear()
End If
End Sub
Private Sub edittopicdata_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
connection.Close()
End Sub