'==========================增删改部分=================================                       
                       '取得当前系统时间
                        date1 = ComDate.GetSysDate 
                        strSql = String.Empty'======================================================================                    For i = 0 To dt2.Rows.Count - 1    '删除的情况                                           StrShangdian_code = Trim(txtCode.Text)
                        StrFuzeren_code = strFuzeren                        If dt2.Rows(i).Item(0) = "DC" Then
                            StrPeisong_fenlei = "1"
                        ElseIf dt2.Rows(i).Item(0) = "TC(按商店不同送货)" Then
                            StrPeisong_fenlei = "2"
                        ElseIf dt2.Rows(i).Item(0) = "TC(送货总数)" Then
                            StrPeisong_fenlei = "3"
                        ElseIf dt2.Rows(i).Item(0) = "直送" Then
                            StrPeisong_fenlei = "4"
                        End If                        If dt2.Rows(i).Item(1) = "普通品" Then
                            StrTebiepeisong_fenlei = "1"
                        ElseIf dt2.Rows(i).Item(1) = "消耗品" Then
                            StrTebiepeisong_fenlei = "2"
                        ElseIf dt2.Rows(i).Item(1) = "库存货物" Then
                            StrTebiepeisong_fenlei = "3"
                        End If                        If dt2.Rows(i).Item(2) = "○" Then
                            StrPeisong_Sun = "1"
                        ElseIf dt2.Rows(i).Item(2) = "×" Then
                            StrPeisong_Sun = "0"
                        End If
                        If dt2.Rows(i).Item(3) = "○" Then
                            StrPeisong_Mon = "1"
                        ElseIf dt2.Rows(i).Item(3) = "×" Then
                            StrPeisong_Mon = "0"
                        End If                        If dt2.Rows(i).Item(4) = "○" Then
                            StrPeisong_Tue = "1"
                        ElseIf dt2.Rows(i).Item(4) = "×" Then
                            StrPeisong_Tue = "0"
                        End If                        If dt2.Rows(i).Item(5) = "○" Then
                            StrPeisong_Wed = "1"
                        ElseIf dt2.Rows(i).Item(5) = "×" Then
                            StrPeisong_Wed = "0"
                        End If
                        If dt2.Rows(i).Item(6) = "○" Then
                            StrPeisong_Thu = "1"
                        ElseIf dt2.Rows(i).Item(6) = "×" Then
                            StrPeisong_Thu = "0"
                        End If
                        If dt2.Rows(i).Item(7) = "○" Then
                            StrPeisong_Fri = "1"
                        ElseIf dt2.Rows(i).Item(7) = "×" Then
                            StrPeisong_Fri = "0"
                        End If
                        If dt2.Rows(i).Item(8) = "○" Then
                            StrPeisong_Sat = "1"
                        ElseIf dt2.Rows(i).Item(8) = "×" Then
                            StrPeisong_Sat = "0"
                        End If
                        StrDeleteFlag = "0"
                        StrEntryDate = Format(date1, "yyyy/MM/dd HH:mm:ss")
                        StrEntryUser = strUserId
                        StrUpdateDate = Format(date1, "yyyy/MM/dd HH:mm:ss")
                        StrUpdateUser = strUserId
                        If dt2.Rows(i).RowState = DataRowState.Deleted Then                            strSql = String.Empty                            strSql = strSql & " UPDATE " & cTABLE_NAME & " SET "                            strSql = strSql & " DeleteFlag = '1',"                 '删除标志
                            strSql = strSql & " UpdateDate = " & "'" & Format(date1, "yyyy/MM/dd HH:mm:ss") & "',"     '最終更新日
                            strSql = strSql & " UpdateUser = " & "'" & strUserId & "' "                             '最終更新者                            strSql = strSql & " where Shangdian_code  =" & "'" &  StrShangdian_code & "'"
                            strSql = strSql & " and Fuzeren_Code = " & "'" & StrFuzeren_code & "'"                            strSql = strSql & " and Kucun_fenlei = " & "'" & StrPeisong_fenlei & "'"
                            strSql = strSql & " and Tebiepeisong_fenlei = " & "'" & StrTebiepeisong_fenlei & "'"                            strSql = strSql & " and Peisong_Sun = " & "'" & StrPeisong_Sun & "'"
                            strSql = strSql & " and Peisong_Mon = " & "'" & StrPeisong_Mon & "'"
                            strSql = strSql & " and Peisong_Tue = " & "'" & StrPeisong_Tue & "'"
                            strSql = strSql & " and Peisong_Wed = " & "'" & StrPeisong_Wed & "'"
                            strSql = strSql & " and Peisong_Thu = " & "'" & StrPeisong_Thu & "'"
                            strSql = strSql & " and Peisong_Fri = " & "'" & StrPeisong_Fri & "'"
                            strSql = strSql & " and Peisong_Sat = " & "'" & StrPeisong_Sat & "'"                            intRet = mstDbCls.SetData(strSql)  '通过公司定义的函数,执行sql语句,返回受影响的行数.
                        
                            '================================================================================================                        End If                    Next

解决方案 »

  1.   


                        '########################################################################################################
                        For i = 0 To dt2.Rows.Count - 1      '修改的情况                        '#############################################
    NEXTI_MODIFY:           ' 跳转,避免重复值
                            '#############################################                       
                         
                             StrShangdian_code = Trim(txtCode.Text)
                            StrFuzeren_code = strFuzeren                        If dt2.Rows(i).Item(0) = "DC" Then
                                StrPeisong_fenlei = "1"
                            ElseIf dt2.Rows(i).Item(0) = "TC(按商店不同送货)" Then
                                StrPeisong_fenlei = "2"
                            ElseIf dt2.Rows(i).Item(0) = "TC(送货总数)" Then
                                StrPeisong_fenlei = "3"
                            ElseIf dt2.Rows(i).Item(0) = "直送" Then
                                StrPeisong_fenlei = "4"
                            End If                        If dt2.Rows(i).Item(1) = "普通品" Then
                                StrTebiepeisong_fenlei = "1"
                            ElseIf dt2.Rows(i).Item(1) = "消耗品" Then
                                StrTebiepeisong_fenlei = "2"
                            ElseIf dt2.Rows(i).Item(1) = "库存货物" Then
                                StrTebiepeisong_fenlei = "3"
                            End If                        If dt2.Rows(i).Item(2) = "○" Then
                                StrPeisong_Sun = "1"
                            ElseIf dt2.Rows(i).Item(2) = "×" Then
                                StrPeisong_Sun = "0"
                            End If
                            If dt2.Rows(i).Item(3) = "○" Then
                                StrPeisong_Mon = "1"
                            ElseIf dt2.Rows(i).Item(3) = "×" Then
                                StrPeisong_Mon = "0"
                            End If                        If dt2.Rows(i).Item(4) = "○" Then
                                StrPeisong_Tue = "1"
                            ElseIf dt2.Rows(i).Item(4) = "×" Then
                                StrPeisong_Tue = "0"
                            End If                        If dt2.Rows(i).Item(5) = "○" Then
                                StrPeisong_Wed = "1"
                            ElseIf dt2.Rows(i).Item(5) = "×" Then
                                StrPeisong_Wed = "0"
                            End If
                            If dt2.Rows(i).Item(6) = "○" Then
                                StrPeisong_Thu = "1"
                            ElseIf dt2.Rows(i).Item(6) = "×" Then
                                StrPeisong_Thu = "0"
                            End If
                            If dt2.Rows(i).Item(7) = "○" Then
                                StrPeisong_Fri = "1"
                            ElseIf dt2.Rows(i).Item(7) = "×" Then
                                StrPeisong_Fri = "0"
                            End If
                            If dt2.Rows(i).Item(8) = "○" Then
                                StrPeisong_Sat = "1"
                            ElseIf dt2.Rows(i).Item(8) = "×" Then
                                StrPeisong_Sat = "0"
                            End If
                            StrDeleteFlag = "0"
                            StrEntryDate = Format(date1, "yyyy/MM/dd HH:mm:ss")
                            StrEntryUser = strUserId
                            StrUpdateDate = Format(date1, "yyyy/MM/dd HH:mm:ss")
                            StrUpdateUser = strUserId                        If dt2.Rows(i).RowState = DataRowState.Modified Then                       '======================================如出现DATATABLE当前行主键值和数据库中重复问题,则跳转===========
                                strSql = String.Empty                            For k = 0 To dt2.Rows.Count - 1                                strSql = strSql & " select Shangdian_code ,Fuzeren_Code,Kucun_fenlei from " & cTABLE_NAME
                                    strSql = strSql & " where Shangdian_code  =" & "'" &  StrShangdian_code & "'"
                                    strSql = strSql & " and Fuzeren_Code = " & "'" & StrFuzeren_code & "'"
                                    strSql = strSql & " and Kucun_fenlei = " & "'" & StrPeisong_fenlei & "'"
                                    mstDsCls = mstDbCls.GetData(strSql)   
                                '通过公司定义的函数,执行sql语句,取得datatable当前行数,datatable当前行数是mstDsCls.GetRecordCount.                                If mstDsCls.GetRecordCount <> 0 Then
                                        If i < dt2.Rows.Count - 1 Then
                                            i = i + 1
                                            GoTo NEXTI_MODIFY                                    ElseIf i >= dt2.Rows.Count - 1 Then
                                            GoTo ENDI_MODIFY
                                        End If
                                    End If                            Next
                           '===================================如没有出错,则对该行操作============================================ 
                                strSql = String.Empty                            strSql = strSql & " UPDATE " & cTABLE_NAME & " SET "
                                strSql = strSql & " Shangdian_code  = " & "'" &  StrShangdian_code & "',"                 '店舗名                            strSql = strSql & " Fuzeren_Code = " & "'" & StrFuzeren_code & "',"
                                strSql = strSql & " Kucun_fenlei = " & "'" & StrPeisong_fenlei & "',"
                                strSql = strSql & " Tebiepeisong_fenlei = " & "'" & StrTebiepeisong_fenlei & "',"                            strSql = strSql & " Peisong_Sun = " & "'" & StrPeisong_Sun & "',"
                                strSql = strSql & " Peisong_Mon = " & "'" & StrPeisong_Mon & "',"
                                strSql = strSql & " Peisong_Tue = " & "'" & StrPeisong_Tue & "',"
                                strSql = strSql & " Peisong_Wed = " & "'" & StrPeisong_Wed & "',"
                                strSql = strSql & " Peisong_Thu = " & "'" & StrPeisong_Thu & "',"
                                strSql = strSql & " Peisong_Fri = " & "'" & StrPeisong_Fri & "',"
                                strSql = strSql & " Peisong_Sat = " & "'" & StrPeisong_Sat & "',"
                                strSql = strSql & " UpdateDate = " & "'" & Format(date1, "yyyy/MM/dd HH:mm:ss") & "',"     '最終更新日
                                strSql = strSql & " UpdateUser = " & "'" & strUserId & "' "                             '最終更新者
                           
                                intRet = mstDbCls.SetData(strSql)'通过公司定义的函数,执行sql语句,返回受影响的行数.
                                
                                '================================================================================================
                            End If                    Next
                        '#############################################
    ENDI_MODIFY:        '结束跳出循环.
                        '#############################################
      

  2.   

        '######################################################################################################                    For i = 0 To dt2.Rows.Count - 1         '新增的情况
                            '#############################################
    NEXTI_ADD:              ' 跳转,避免重复值
                            '#############################################                        '############################################################################
                            '#############   20080414 FU ZHI ############
                             StrShangdian_code = Trim(txtCode.Text)
                            StrFuzeren_code = strFuzeren                        If dt2.Rows(i).Item(0) = "DC" Then
                                StrPeisong_fenlei = "1"
                            ElseIf dt2.Rows(i).Item(0) = "TC(按商店不同送货)" Then
                                StrPeisong_fenlei = "2"
                            ElseIf dt2.Rows(i).Item(0) = "TC(送货总数)" Then
                                StrPeisong_fenlei = "3"
                            ElseIf dt2.Rows(i).Item(0) = "直送" Then
                                StrPeisong_fenlei = "4"
                            End If                        If dt2.Rows(i).Item(1) = "普通品" Then
                                StrTebiepeisong_fenlei = "1"
                            ElseIf dt2.Rows(i).Item(1) = "消耗品" Then
                                StrTebiepeisong_fenlei = "2"
                            ElseIf dt2.Rows(i).Item(1) = "库存货物" Then
                                StrTebiepeisong_fenlei = "3"
                            End If                        If dt2.Rows(i).Item(2) = "○" Then
                                StrPeisong_Sun = "1"
                            ElseIf dt2.Rows(i).Item(2) = "×" Then
                                StrPeisong_Sun = "0"
                            End If
                            If dt2.Rows(i).Item(3) = "○" Then
                                StrPeisong_Mon = "1"
                            ElseIf dt2.Rows(i).Item(3) = "×" Then
                                StrPeisong_Mon = "0"
                            End If                        If dt2.Rows(i).Item(4) = "○" Then
                                StrPeisong_Tue = "1"
                            ElseIf dt2.Rows(i).Item(4) = "×" Then
                                StrPeisong_Tue = "0"
                            End If                        If dt2.Rows(i).Item(5) = "○" Then
                                StrPeisong_Wed = "1"
                            ElseIf dt2.Rows(i).Item(5) = "×" Then
                                StrPeisong_Wed = "0"
                            End If
                            If dt2.Rows(i).Item(6) = "○" Then
                                StrPeisong_Thu = "1"
                            ElseIf dt2.Rows(i).Item(6) = "×" Then
                                StrPeisong_Thu = "0"
                            End If
                            If dt2.Rows(i).Item(7) = "○" Then
                                StrPeisong_Fri = "1"
                            ElseIf dt2.Rows(i).Item(7) = "×" Then
                                StrPeisong_Fri = "0"
                            End If
                            If dt2.Rows(i).Item(8) = "○" Then
                                StrPeisong_Sat = "1"
                            ElseIf dt2.Rows(i).Item(8) = "×" Then
                                StrPeisong_Sat = "0"
                            End If
                            StrDeleteFlag = "0"
                            StrEntryDate = Format(date1, "yyyy/MM/dd HH:mm:ss")
                            StrEntryUser = strUserId
                            StrUpdateDate = Format(date1, "yyyy/MM/dd HH:mm:ss")
                            StrUpdateUser = strUserId                        If dt2.Rows(i).RowState = DataRowState.Added Then
                                strSql = String.Empty                            '################如出现DATATABLE当前行主键值和数据库中重复问题,则跳转##############################
                              
                                strSql = strSql & " select Shangdian_code ,Fuzeren_Code,Kucun_fenlei from " & cTABLE_NAME
                                strSql = strSql & " where Shangdian_code  =" & "'" &  StrShangdian_code & "'"
                                strSql = strSql & " and Fuzeren_Code = " & "'" & StrFuzeren_code & "'"
                                strSql = strSql & " and Kucun_fenlei = " & "'" & StrPeisong_fenlei & "'"
                                mstDsCls = mstDbCls.GetData(strSql)
                                '通过公司定义的函数,执行sql语句,取得datatable当前行数,datatable当前行数是mstDsCls.GetRecordCount.
                                If mstDsCls.GetRecordCount <> 0 Then
                                    If i < dt2.Rows.Count - 1 Then
                                        i = i + 1
                                        GoTo NEXTI_ADD                                ElseIf i >= dt2.Rows.Count - 1 Then
                                        GoTo ENDI_ADD
                                    End If
                                End If                            '################如没有出错,则对该行操作#################
                                                           strSql = strSql & "INSERT INTO " & cTABLE_NAME                            strSql = strSql & " ("
                                strSql = strSql & " Shangdian_code ,"
                                strSql = strSql & " Fuzeren_Code,"
                              
                                strSql = strSql & " Kucun_fenlei,"
                                strSql = strSql & " Tebiepeisong_fenlei,"
                             
                                strSql = strSql & " Peisong_Sun,"
                                strSql = strSql & " Peisong_Mon,"
                                strSql = strSql & " Peisong_Tue,"
                                strSql = strSql & " Peisong_Wed,"
                                strSql = strSql & " Peisong_Thu,"
                                strSql = strSql & " Peisong_Fri,"
                                strSql = strSql & " Peisong_Sat,"                            strSql = strSql & " DeleteFlag,"
                                strSql = strSql & " EntryDate,"
                                strSql = strSql & " EntryUser,"
                                strSql = strSql & " UpdateDate,"
                                strSql = strSql & " UpdateUser )"                            strSql = strSql & " VALUES ('"
                          
                                strSql = strSql &  StrShangdian_code & "','"
                                strSql = strSql & StrFuzeren_code & "','"
                                strSql = strSql & StrPeisong_fenlei & "','"
                                strSql = strSql & StrTebiepeisong_fenlei & "','"                            strSql = strSql & StrPeisong_Sun & "','"
                                strSql = strSql & StrPeisong_Mon & "','"
                                strSql = strSql & StrPeisong_Tue & "','"
                                strSql = strSql & StrPeisong_Wed & "','"
                                strSql = strSql & StrPeisong_Thu & "','"
                                strSql = strSql & StrPeisong_Fri & "','"
                                strSql = strSql & StrPeisong_Sat & "','"                            strSql = strSql & StrDeleteFlag & "','"
                                strSql = strSql & StrEntryDate & "','"
                                strSql = strSql & StrEntryUser & "','"
                                strSql = strSql & StrUpdateDate & "','"
                                strSql = strSql & StrUpdateUser & "')"                            intRet = mstDbCls.SetData(strSql)'通过公司定义的函数,执行sql语句,返回受影响的行数.
                                                  End If                    Next                 '#############################################
    ENDI_ADD:        '结束跳出循环
                        '#############################################
      

  3.   


                dt2.GetChanges()
                '#######################################################################
                ViewState("View1") = dt2 '用ViewState保存DATATABLE当前状态.
                '#######################################################################
                dtgList.DataSource = dt2
                dtgList.DataBind()
      

  4.   

    以上是全部的代码,总算发完了.
    小弟不才,编程用的是笨办法,致使那么简单的问题代码那么长.
    不过单位里的数据库连接函数都是指定的,不许我们用DATAADAPTER来做,真是郁闷.
    麻烦请教各位朋友的指点,从心底里感谢大家!!
      

  5.   

    麻烦就麻烦在数据库表里和datatable里放的东西类型不同.
    数据库里放的是数字,放到datatable里就成了圆圈\大叉和文字了,还要对应起来转换,麻烦透了.
      

  6.   

    数据库里放的是数字,放到datatable里就成了圆圈\大叉和文字了,还要对应起来转换既然别的不能动,也得转换啊,写个通用的函数,
    另外,先打印strSql看是否完全正确