【发布时间】:2019-07-20 01:15:13
【问题描述】:
我在 vb.net 上编程,使用 ms-access 和 ADODB 记录集。我想我很难解释,我希望你们能理解我的问题。 我想避免数据库中的重复值,当要重复时,它不会添加任何东西。我有两个datagradeview。一个包含我在访问表中的所有组,我们称之为 gridAllGroup。另一个datagradeview只有问题中的组,这个称为gridGroup。我有一个按钮,它将把选定的组从 gridAllGroup 传递到 gridGroup。 实际上它是3个网格。 首先是问卷,然后所选问卷将使用来自该问卷的组填充 gridGroups。
我试图从 ID Questionary 和 ID Group 中获取值,然后比较表中是否已经存在..但我认为我这样做是错误的。
这是将传递所选组的按钮
s = "Select * from rrQuestionaryGroup where ID_Questionary = " & Val(Trim(lblIDQuestionary.Text)) & " and ID_Group = " & Val(Trim(lblIDGroup.Text)) & ""
retval = getRS(s, rs, False, serror)
If retval Then
MsgBox("Group already in this questionary")
Else
rs.AddNew()
rs.Fields("ID_Questionary").Value = lblIDHoldQuestionary.Text
rs.Fields("ID_Group").Value = lblIDHoldGroup.Text
rs.Fields("Order").Value = lblIDHoldOrder.Text
rs.Update()
rs.Close()
End If
Public Function getRS(ByVal sql As String, rs As ADODB.Recordset, ByVal RO As Boolean, ByRef sErro As String) As Boolean
Dim Con As New ADODB.Connection
On Error Resume Next
Con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users.mdb;Persist Security Info=true")
Con.CursorLocation = ADODB.CursorLocationEnum.adUseClient
rs.Open(sql, Con, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
If Err.Number = 0 Then
Return True
Else
sErro = Err.Description
Return False
End If
On Error GoTo 0
End Function
我希望这是足够的信息来理解。在此先感谢,如果有任何帮助,我将不胜感激。
【问题讨论】:
-
您需要发布更多代码,尤其是
getRS()函数。 -
@RobertBaron 好的....那个只是为了连接
-
为什么选择 ADODB? ADO.net 已经存在了很长一段时间了。
标签: vb.net ms-access duplicates