這是我在這裏的第一篇文章,但這個論壇已經幫了我很多。使用BindingSource數據更新數據庫
首先,對不起我的英語,我來自巴西,我正在努力寫作,沒有翻譯。
我正在開發一家超市的軟件,但我遇到了與數據庫的連接問題。我試圖以編程方式創建所有連接和事務(DataSet,BindingSources等)。
我已經成功地與SQL Server Express 2008連接,使用一個模塊( 「DB」)內的功能( 「CONSULTA」):
Dim ad As SqlDataAdapter = New SqlDataAdapter
Function consulta(ByVal tabela As String, Optional opt As Boolean = False, Optional optparam As String = "") As DataSet
Dim ds As New DataSet
Try
Dim connstring As String = "Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=SysMarket;Persist Security Info=True;User ID=admin;Password=XXXXXX"
Dim conObj As New SqlConnection(connstring)
Dim sql As String
If opt = True Then
sql = "SELECT * FROM " & tabela & " " & optparam
Else
sql = "SELECT * FROM " & tabela
End If
Dim cmd As SqlCommand = New SqlCommand(sql, conObj)
ad.SelectCommand = cmd
conObj.Open()
ad.Fill(ds, tabela)
ad.Dispose()
cmd.Dispose()
conObj.Close()
Return ds
Catch ex As Exception
MessageBox.Show("Erro na consulta" & vbCrLf & ex.InnerException.ToString, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
ds.Clear()
Return ds
End Try
End Function
這是主要的部分代碼在這裏我做一個SelectQuery和投入的BindingSource:
Dim ds As DataSet = db.consulta("departamentos")
Private Sub cad_departamento_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BindingSource1.DataSource = ds
BindingSource1.DataMember = "departamentos"
TextBox1.DataBindings.Add("Text", BindingSource1, "id")
TextBox2.DataBindings.Add("Text", BindingSource1, "departamento")
End Sub
但我的問題是,當我有更新數據庫,通過添加,編輯或刪除BindingSource的一些項目。因爲在模塊中,我關閉了與SQL Server的連接。所以我需要重新打開這個連接,然後以某種方式「讀取」DataSet並更新數據庫?
有人可以向我解釋這個或給我一個例子嗎?
謝謝。