这是我在这里的第一篇文章,但这个论坛已经帮了我很多。使用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并更新数据库?
有人可以向我解释这个或给我一个例子吗?
谢谢。