zoukankan      html  css  js  c++  java
  • vb用dataset 更新数据并触发触发器,简体中文与繁体中文的转换

    Dim SQL_Header As String = "CP Reference No.,CP Version No.,Call Lot,Remark ID,Remarks,UPDUSER"
        Dim SQL_Where As String = ""
        Dim SQL As String = "SELECT  CPREFNO, CPVERNO,CLOT,REMLIN,REMARK,UPDUSER FROM CPM_Remark"
        Dim netDs As New DataSet
        Dim tn As String = "TB"
        Dim m As Int32
    Private Sub Frm_CP_Management_Remark_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Try
                Me.txtCPREF.Text = CPREF
                Me.txtCPVER.Text = CPVERSION
                Me.txtCallLot.Text = CPCLOT
                Me.txtCustomer.Text = CPEKEY
                Me.txtGroupName.Text = CPGROUP
                Me.txtLocation.Text = CPLOCATION
    
                SQL_Where = " WHERE CPREFNO='" & CPREF & "' AND CPVERNO='" & CPVERSION & "'"
                netDs = gData.GetDataSet(SQL & SQL_Where & " ORDER BY REMLIN", sqlConn, tn)
                If netDs.Tables(tn).Rows.Count > 0 Then
                    m = netDs.Tables(tn).Compute("max(remlin)", "") + 1
                Else
                    m = 1
                End If
    
                netDs.Tables(tn).DefaultView.AllowNew = True
                netDs.Tables(tn).DefaultView.AllowDelete = True
                netDs.Tables(tn).DefaultView.AllowEdit = True
                dgv.DataSource = netDs.Tables(tn)
                dgv.AllowDrop = False
                Dim myGridStyle As DataGridTableStyle = New DataGridTableStyle
                myGridStyle.AllowSorting = False
                myGridStyle.ColumnHeadersVisible = False
                myGridStyle.RowHeadersVisible = False
                myGridStyle.AlternatingBackColor = Color.WhiteSmoke
                myGridStyle.MappingName = tn
                myGridStyle.RowHeadersVisible = True
                myGridStyle.SelectionForeColor = Color.DarkSeaGreen
    
                For i As Integer = 0 To netDs.Tables(tn).Columns.Count - 1
                    Select Case i
                        Case 0
                            myGridStyle.GridColumnStyles.Add(TextBoxColumnStyle("CLOT", "Call Lot", 0, True))
                        Case 1
                            myGridStyle.GridColumnStyles.Add(TextBoxColumnStyle("REMLIN", "Remark ID", 0, True))
                        Case 2
                            myGridStyle.GridColumnStyles.Add(TextBoxColumnStyle("REMARK", "Remarks", 700, False))
                    End Select
                Next
                dgv.TableStyles.Add(myGridStyle)
                dgv.CaptionVisible = False
                gMainForm.StatusBar1.Panels(1).Text = "Total Records: " & netDs.Tables(tn).Rows.Count & "   Current: " & dgv.CurrentCell.RowNumber + 1
            Catch ex As Exception
                MsgBox(ex.ToString(), MsgBoxStyle.Information, Me.Text)
            End Try
        End Sub
    Public Function SaveSub() As String
            If Not netDs.HasChanges Then
                Return "No data change."
            End If
            Dim mytran As OleDb.OleDbTransaction
            Dim n As Int16 = m
            Try
                For Each r As DataRow In netDs.Tables(tn).Rows
                    If r.RowState = DataRowState.Added Or r.RowState = DataRowState.Modified Then
                        If r.RowState = DataRowState.Added Then
                            r.BeginEdit()
                            r.Item("CPREFNO") = Me.CPREF
                            r.Item("CPVERNO") = Me.CPVERSION
                            r("clot") = Me.CPCLOT
                            r("remlin") = n
                            r("UPDUSER") = g.gUserId
                            r("remark") = StrConv(r("remark"), Microsoft.VisualBasic.VbStrConv.TraditionalChinese)
                            r.EndEdit()
                            n = n + 1
                        End If
                        If r.RowState = DataRowState.Modified Then
                            r.BeginEdit()
                            r("clot") = Me.CPCLOT
                            r("UPDUSER") = g.gUserId
                            r("remark") = StrConv(r("remark"), Microsoft.VisualBasic.VbStrConv.TraditionalChinese)
                            r.EndEdit()
    
                        End If
    
                        If r("remark").ToString().Length > 120 Then
                            Return "Max 120 characters for each line!"
                        ElseIf r("remark").ToString().Length <= 0 Then
                            Return "The record can not be blank."
                        End If
                    End If
                Next
                Dim chds As DataSet = netDs.GetChanges(DataRowState.Deleted + DataRowState.Added + DataRowState.Modified)
                mytran = sqlConn.BeginTransaction()
                Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(SQL, sqlConn)
                Dim cmb As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
                da.SelectCommand.Connection = sqlConn
                da.SelectCommand.Transaction = mytran
                da.UpdateCommand = cmb.GetUpdateCommand()
                da.DeleteCommand = cmb.GetDeleteCommand()
                da.InsertCommand = cmb.GetInsertCommand()
                da.Update(chds, tn)
                netDs.AcceptChanges()
                mytran.Commit()
                Me.dgv.Refresh()
                m = n
                Return "Save successfully!"
            Catch ex As Exception
                Return "Commit Exception!" & vbCrLf & ex.ToString()
                Try
                    mytran.Rollback()
                Catch ex2 As Exception
                    Return "Rollback Exception!" & vbCrLf & ex.ToString()
                End Try
            End Try
        End Function

    字符编码转换函数:StrConv(str,字符编码)
    eg:把简体中文转换成繁体中文   StrConv(r("remark"), Microsoft.VisualBasic.VbStrConv.TraditionalChinese)

    vinson
  • 相关阅读:
    winform窗口打开特效及窗口位置居中
    C# Installer Projects 打包工具
    C#
    MVVM模式开发WinForm-ReactiveUI
    C#实现类似百度网盘、育网校园云盘在“我的电脑”磁盘驱动器
    MVVM框架
    自制2048小游戏
    一个无限循环轮播图 HCCycleView
    Xcode插件及cocoapods不能正常使用的解决方法
    Runtime — 运行时机制
  • 原文地址:https://www.cnblogs.com/vinsonLu/p/3070450.html
Copyright © 2011-2022 走看看