Public Function BulkCopyMySql(ByRef table As DataTable, ByVal table_name As String) As String
Try
Dim queryBuilder As StringBuilder = New StringBuilder()
Dim dt As DateTime
queryBuilder.AppendFormat("INSERT INTO `{0}` (", table_name)
If table.Columns.Count > 1 AndAlso table.Rows.Count > 0 Then
queryBuilder.AppendFormat("`{0}`", table.Columns(0).ColumnName)
If table.Columns.Count > 1 Then
For i As Integer = 1 To table.Columns.Count - 1
queryBuilder.AppendFormat(", `{0}` ", table.Columns(i).ColumnName)
Next
End If
queryBuilder.AppendFormat(") VALUES (", table_name)
If table.Columns(0).DataType = GetType(String) Then
queryBuilder.AppendFormat("'{0}'", MySqlHelper.EscapeString(table.Rows(0)(table.Columns(0).ColumnName).ToString()))
ElseIf table.Columns(0).DataType = GetType(DateTime) Then
dt = CType(table.Rows(0)(table.Columns(0).ColumnName), DateTime)
queryBuilder.AppendFormat("'{0}'", dt.ToString("yyyy-MM-dd HH:mm:ss"))
ElseIf table.Columns(0).DataType = GetType(Int32) Then
queryBuilder.AppendFormat("{0}", If(table.Rows(0).Field(Of Int32?)(table.Columns(0).ColumnName), 0))
Else
queryBuilder.AppendFormat(", {0}", table.Rows(0)(table.Columns(0).ColumnName).ToString())
End If
For i As Integer = 1 To table.Columns.Count - 1
If table.Columns(i).DataType = GetType(String) Then
queryBuilder.AppendFormat(", '{0}'", MySqlHelper.EscapeString(table.Rows(0)(table.Columns(i).ColumnName).ToString()))
ElseIf table.Columns(i).DataType = GetType(DateTime) Then
dt = CType(table.Rows(0)(table.Columns(i).ColumnName), DateTime)
queryBuilder.AppendFormat(", '{0}'", dt.ToString("yyyy-MM-dd HH:mm:ss"))
ElseIf table.Columns(i).DataType = GetType(Int32) Then
queryBuilder.AppendFormat(", {0}", If(table.Rows(0).Field(Of Int32?)(table.Columns(i).ColumnName), 0))
Else
queryBuilder.AppendFormat(", {0}", table.Rows(0)(table.Columns(i).ColumnName).ToString())
End If
Next
queryBuilder.Append(")")
queryBuilder.AppendLine()
If table.Rows.Count > 1 Then
For row As Integer = 1 To table.Rows.Count - 1
queryBuilder.Append(", (")
If table.Columns(0).DataType = GetType(String) Then
queryBuilder.AppendFormat("'{0}'", MySqlHelper.EscapeString(table.Rows(row)(table.Columns(0).ColumnName).ToString()))
ElseIf table.Columns(0).DataType = GetType(DateTime) Then
dt = CType(table.Rows(row)(table.Columns(0).ColumnName), DateTime)
queryBuilder.AppendFormat("'{0}'", dt.ToString("yyyy-MM-dd HH:mm:ss"))
ElseIf table.Columns(0).DataType = GetType(Int32) Then
queryBuilder.AppendFormat("{0}", If(table.Rows(row).Field(Of Int32?)(table.Columns(0).ColumnName), 0))
Else
queryBuilder.AppendFormat(", {0}", table.Rows(row)(table.Columns(0).ColumnName).ToString())
End If
For col As Integer = 1 To table.Columns.Count - 1
If table.Columns(col).DataType = GetType(String) Then
queryBuilder.AppendFormat(", '{0}'", MySqlHelper.EscapeString(table.Rows(row)(table.Columns(col).ColumnName).ToString()))
ElseIf table.Columns(col).DataType = GetType(DateTime) Then
dt = CType(table.Rows(row)(table.Columns(col).ColumnName), DateTime)
queryBuilder.AppendFormat(", '{0}'", dt.ToString("yyyy-MM-dd HH:mm:ss"))
ElseIf table.Columns(col).DataType = GetType(Int32) Then
queryBuilder.AppendFormat(", {0}", If(table.Rows(row).Field(Of Int32?)(table.Columns(col).ColumnName), 0))
Else
queryBuilder.AppendFormat(", {0}", table.Rows(row)(table.Columns(col).ColumnName).ToString())
End If
Next
queryBuilder.Append(")")
queryBuilder.AppendLine()
Next
queryBuilder.Append(";")
End If
Dim str As String = createMYsqltable(table, table_name)
GetMYSQL(str)
GetMYSQL(queryBuilder.ToString())
Return queryBuilder.ToString()
Else
Return ""
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Function