none
兩張Table比較當有差異值時從第一張table的最後一筆開始插入請問程式碼該如何改寫 還有table1回存資料庫該如何寫 謝謝 RRS feed

  • 問題

  • 請問各位大大:

    我有兩張報表table1 與 table2

    當table2的資料不在table1中  將table2的列插入在table1

    問題一,請問如何取得table1最後一列進行插入動作?

    問題二,請問如後將table1的資料回存到資料庫中 請問該如何寫   謝謝

     For i As Integer = 0 To table1.Rows.Count - 1
                Dim found As Boolean = False
                For j As Integer = 0 To table2.Rows.Count - 1
                    If Trim(table1.Rows(i)(1).ToString) = Trim(table2.Rows(j)(0).ToString) Then
                        found = True
                    End If
                Next
          If found = False Then
             For Each Row As DataRow In table2.Rows
                 Dim newRow = table1.NewRow
                 newRow.ItemArray = Row.ItemArray 
                 table1.Rows.InsertAt(newRow, 3) '因為我知道是從table1只有3筆所以給3如果不知table1有幾筆該如何寫呢?
                 Next
                  
             End If
       Next

    2019年6月27日 上午 06:55

所有回覆

  • 問題一

    如果你最後 Table1 的資料,都要 insert 進資料庫

    那麼你就先 insert Table1 的資料

    然後跑迴圈找出 Table2 有 但是 Table 1 沒有的資料 一找到就 insert

    問題二

    請問你是用什麼資料存取的框架?

    ADO.NET 直接下 sql 句執行? or Entity Framewrk?


    2019年6月27日 上午 09:11
  • 大大你好感謝你的回覆  我用的是vb.net 2010 framework 4.0

    我有一個問題請教 我現在要將加工過的table值 插入mysql 資料庫的特定欄位該怎麼寫?

    以下是程式碼

    前段是比較 table1 與 table2  當table1 與 table2 某欄位值不相等時將資料存入table3

    table3接續table1的序號下去

    最後將結果存入mysql 使用insert  但不知如何寫才好? 所以請教大大該如何寫  謝謝

            Dim k As Integer
            Dim found As Boolean = False
            For i As Integer = 0 To table1.Rows.Count - 1
                'Dim found As Boolean = False
                For j As Integer = 0 To table2.Rows.Count - 1
                    If (Trim(table1.Rows(i)(1).ToString) = Trim(table2.Rows(j)(0).ToString)) And (Trim(table1.Rows(i)(2).ToString) = Trim(table2.Rows(j)(1).ToString)) Then
                        found = True
                    End If
                Next
    
                k = i + 1
            Next
            If found = False Then
                For Each Row As DataRow In table2.Rows
                    Dim newRow = table3.NewRow
                    newRow.ItemArray = Row.ItemArray
                    table3.Rows.Add(newRow)
                Next
            End If
    
            Dim y As Integer = 0
            For kk As Integer = k To (table3.Rows.Count + (k - 1))
                table3.Rows(y)(0) = k + y
                y = y + 1
            Next  
    
    Dim connectionString As String = "Database=vtigercrm;Data Source=****;User Id=****;Password=***;port=3306;CharSet=utf8"
            Dim iReturn As Boolean
            Using SQLConnection As New MySqlConnection(connectionString)
                Using sqlCommand As New MySqlCommand()
                    With sqlCommand
                        .CommandText = "INSERT INTO vtiger_account (`accountid`, `account_no`, `accountname`, `ownership`, `siccode`, `phone`, `fax`) values (@accountid,@account_no,@accountname,@ownership,@siccode,@phone,@fax)"
                        .Connection = SQLConnection
                        .CommandType = CommandType.Text
                        .Parameters.AddWithValue("@accountid", ?) '問號是不知該怎麼填
                        .Parameters.AddWithValue("@account_no",?)
                        .Parameters.AddWithValue("@accountname",?)
                        .Parameters.AddWithValue("@ownership", ?)
                        .Parameters.AddWithValue("@siccode", ?)
                        .Parameters.AddWithValue("@phone", ?)
                        .Parameters.AddWithValue("@fax", ?)
    
                    End With
                    Try
                        SQLConnection.Open()
                        sqlCommand.ExecuteNonQuery()
                        iReturn = True
                    Catch ex As MySqlException
                        MsgBox(ex.Message.ToString)
                        iReturn = False
                    Finally
                        SQLConnection.Close()
                    End Try
                End Using
            End Using
    

    2019年6月28日 上午 08:27