【发布时间】:2014-12-21 23:58:07
【问题描述】:
这是我在这里的第一篇文章,但这个论坛已经帮助了我很多。
首先,对不起我的英语,我来自巴西,我正在尝试在没有翻译的情况下写作。
我正在为一家超市开发软件,但我在连接数据库时遇到问题。我正在尝试以编程方式进行所有连接和事务(DataSets、BindingSources 等)。
我已经使用模块(“db”)中的函数(“consulta”)连接到 SQL Server Express 2008:
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 并更新数据库?
谁能给我解释一下或者给我一个例子?
谢谢。
【问题讨论】:
标签: vb.net dataset updating bindingsource