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
  • 相关阅读:
    微信小程序 使用async await
    CSS currentColor 变量的使用
    wn.run万能命令
    (13)浮动布局(控制盒模型在页面的什么位置 什么是清浮动)
    (0)前端总结(HTML + CSS + JQ)
    (12)页面的布局(浮动布局)
    (11)盒模型
    (10)背景图片操作
    (9)字体操作
    (8)伪类选择器和鼠标悬停动画效果
  • 原文地址:https://www.cnblogs.com/vinsonLu/p/3070450.html
Copyright © 2011-2022 走看看