数据集对新行进行了更改

用户名

我只是注意到,如果用户修改了a中的某些内容,DataGridView并且还选择了最后一行(新行)而不在其中输入任何数据,那么当HasChanged事件触发时,该最后一行新行将包含在要添加到数据库中的行中。然后我得到一个错误,因为由于空值而无法将该记录放入数据库中。我想在特定情况下排除这一行,因为它不应被视为要添加的行。下面是我当前的代码:

    For Each row As DataGridViewRow In Grid.Rows
        If Not row.IsNewRow Then
            Dim cellValue As String = String.Empty
            For i = 1 To row.Cells.Count - 1
                cellValue = row.Cells(i).Value.ToString
                If String.IsNullOrEmpty(cellValue) Then
                    MsgBox("All fields has to be filled out")
                    Exit Sub
                End If
            Next
        End If
    Next

    marke.MakeChangesDS()

Public Sub MakeChangesDataSet() Implements IDAL.MakeChangesDataSet
    If Not GetGeschaftDataSet.HasChanges Then
        MessageBox.Show("No changes to be done", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    Else
        Dim i As Integer
        Try
            Using MyConnection = New SqlConnection(strcon)
                Using cmd As New SqlCommand("SELECT * FROM T_Marke", MyConnection)
                    MyConnection.Open()
                    ' Create a data adapter in the method and throw it away afterwards
                    Using GetProjectsDataAdapter = New SqlDataAdapter(cmd)
                        Dim cmdbuilder As New SqlCommandBuilder(GetProjectsDataAdapter)
                        i = GetProjectsDataAdapter.Update(GetGeschaftDataSet, "trial1")
                    End Using
                End Using
            End Using
            MessageBox.Show("Updated" & i & " marks", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End If
End Sub

我想我应该检查并排除在MakeChangesDataSet函数中。

史蒂夫

SqlDataAdapter类具有一个名为RowUpdating的事件处理程序该事件处理程序使您可以检查行是否有效,并选择取消该行的更新。

.....
Using GetProjectsDataAdapter = New SqlDataAdapter(cmd)
   Dim cmdbuilder As New SqlCommandBuilder(GetProjectsDataAdapter)
   AddHandler GetProjectsDataAdapter.RowUpdating, AddressOf onUpdate
   i = GetProjectsDataAdapter.Update(GetGeschaftDataSet, "trial1")
   RemoveHandler GetProjectsDataAdapter.RowUpdating, AddressOf onUpdate
End Using

在实际的更新/插入/删除发生之前,需要为需要更新的每一行调用此事件。事件处理程序代码接收决定如何处理数据所需的所有信息。您会得到,StatementType它告诉您这是INSERT,UPDATE还是DELETE操作。然后,您可以SqlRowUpdatingEventArgs.Status在数据库引擎引发任何异常之前,决定对行设置进行处理

Sub OnUpdate(sender as Object, args As SqlRowUpdatingEventArgs)
     If args.StatementType = StatementType.Insert Then
        if Not IsYourRowValid(args.Row) Then
           args.Status = UpdateStatus.SkipThisRow
        End If
    End If
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据集对新行进行了更改

来自分类Dev

仅保存如果进行了更改

来自分类Dev

检查是否针对新的GIT存储库进行了更改

来自分类Dev

检查Git是否以编程方式进行了更改

来自分类Dev

如何检查是否在DataGridView中进行了任何更改

来自分类Dev

找出谁对Powershell对文件进行了最后更改?

来自分类Dev

Bash评估在版本4.4中进行了更改?

来自分类Dev

notifydataset在片段内部使用listview进行了更改

来自分类Dev

derbyJS-实时了解谁进行了更改

来自分类Dev

检查Git是否以编程方式进行了更改

来自分类Dev

如何检查rsync是否对bash进行了任何更改?

来自分类Dev

keyboardWillShow事件进行了其他更改

来自分类Dev

SuiteCRM数据库在外部进行了修改

来自分类Dev

枚举时对核心数据进行了变异

来自分类Dev

SuiteCRM数据库在外部进行了修改

来自分类Dev

枚举时对核心数据进行了变异

来自分类Dev

尽管对行进行了索引,但正确的MySQL Left Join Query重载了小型DB

来自分类Dev

尽管对行进行了索引,但正确的MySQL Left Join Query重载了小型DB

来自分类Dev

RealmSwift错误:“ RLMException,原因:对集合进行枚举时对其进行了更改。”

来自分类Dev

RealmSwift错误:“ RLMException,原因:对集合进行枚举时对其进行了更改。”

来自分类Dev

我对Dockerfile进行了更改,但是我的“ docker build”没有反映出更改

来自分类Dev

对cakephp视图文件进行了更改,但更改未在浏览器中显示

来自分类Dev

Python:分组后索引不正确,对列集进行了不同的聚合

来自分类Dev

{%如果使用两个字段%进行了更改}

来自分类Dev

版本6.1和6.2之间对IBM Worklight JSONStore API进行了哪些更改?

来自分类Dev

如何查看在Git扩展中进行了哪些更改?

来自分类Dev

Atlassian Bamboo:如果对特定文件进行了更改,请不要触发构建

来自分类Dev

在相同的浏览器滴答周期中对DOM进行了几次更改

来自分类Dev

公司推出软件更新时,对代码段进行了哪些更改?

Related 相关文章

  1. 1

    数据集对新行进行了更改

  2. 2

    仅保存如果进行了更改

  3. 3

    检查是否针对新的GIT存储库进行了更改

  4. 4

    检查Git是否以编程方式进行了更改

  5. 5

    如何检查是否在DataGridView中进行了任何更改

  6. 6

    找出谁对Powershell对文件进行了最后更改?

  7. 7

    Bash评估在版本4.4中进行了更改?

  8. 8

    notifydataset在片段内部使用listview进行了更改

  9. 9

    derbyJS-实时了解谁进行了更改

  10. 10

    检查Git是否以编程方式进行了更改

  11. 11

    如何检查rsync是否对bash进行了任何更改?

  12. 12

    keyboardWillShow事件进行了其他更改

  13. 13

    SuiteCRM数据库在外部进行了修改

  14. 14

    枚举时对核心数据进行了变异

  15. 15

    SuiteCRM数据库在外部进行了修改

  16. 16

    枚举时对核心数据进行了变异

  17. 17

    尽管对行进行了索引,但正确的MySQL Left Join Query重载了小型DB

  18. 18

    尽管对行进行了索引,但正确的MySQL Left Join Query重载了小型DB

  19. 19

    RealmSwift错误:“ RLMException,原因:对集合进行枚举时对其进行了更改。”

  20. 20

    RealmSwift错误:“ RLMException,原因:对集合进行枚举时对其进行了更改。”

  21. 21

    我对Dockerfile进行了更改,但是我的“ docker build”没有反映出更改

  22. 22

    对cakephp视图文件进行了更改,但更改未在浏览器中显示

  23. 23

    Python:分组后索引不正确,对列集进行了不同的聚合

  24. 24

    {%如果使用两个字段%进行了更改}

  25. 25

    版本6.1和6.2之间对IBM Worklight JSONStore API进行了哪些更改?

  26. 26

    如何查看在Git扩展中进行了哪些更改?

  27. 27

    Atlassian Bamboo:如果对特定文件进行了更改,请不要触发构建

  28. 28

    在相同的浏览器滴答周期中对DOM进行了几次更改

  29. 29

    公司推出软件更新时,对代码段进行了哪些更改?

热门标签

归档