For I = 0 To DataGridView.RowCount - 1
myCommand.Parameters.Add(@One;, Grid.items(i).value)
myCommand.Parameters.Add(@two;, Grid.items(i).value)
mycommand.executenonquery()
Next
Imports System.IO
Imports System.Text
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Public Class Form1
Dim Conn As SqlConnection
Dim com As SqlCommand
Dim tr As SqlTransaction
Dim sb As New StringBuilder()
Dim strConn As String
Dim da As New SqlDataAdapter
Dim ds As DataSet = New DataSet
Dim stringPath As String = Application.StartupPath
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
' โค้ดการ Browse file มาโชว์ที่ datagridview
Dim ofd As New OpenFileDialog()
'Filter เฉพาะ Text และ csv ไฟล์
ofd.Filter = "All file(*.txt,*.scv)|*.txt;*.csv|Text files(*.txt)|*.txt|CSV (*.csv)|*.csv"
Dim _path As String = ""
Dim _filenname As String = ""
Dim dt As New DataTable()
If ofd.ShowDialog() = DialogResult.OK Then
'ดึงพาธของไฟล์ csv มาเก็บไว้ที่ตัวแปร _path
_path = Path.GetDirectoryName(ofd.FileName)
'ดึงเฉพาะชื่อไฟล์ (*.scv) มาเก็บไว้ที่ตัวแปร _filenname
_filenname = Path.GetFileName(ofd.FileName)
'แสดงป้ายชื่อพาธเต็มของไฟล์ (*.csv)
Labelshow.Text = ofd.FileName
'connection string โยนพาธไฟล์ (*.csv) เข้าไปที่ [Source] ตามที่ผู้ใช้งานเลือก จาก OpenFileDialog
'Extended Properties:
' HDR=YES หมายความว่าให้แสดงข้อมูลในไฟล์ (*.csv) บรรทัดแรกเป็นชื่อ Column
' HDR=NO หมายความว่า ให้ถือบรรทัดแรกเป็นเนื้อของข้อมูล และให้แทน Column ด้วย F1,F2…ไปเรื่อยๆตามจำนวน Column ของข้อมูล
Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _path + ";Extended Properties=""Text;HDR=YES;FMT=Delimited"""
Dim conn As New OleDbConnection(conString)
'โยนชื่อเฉพาะชื่อไฟล์ เข้าไปใน Sql statement
Dim da As New OleDbDataAdapter("Select * from " + _filenname, conn)
'บรรจุ(Fill) ข้อมูลให้ DataTable (dt)
da.Fill(dt)
'กำหนด DataTable (dt) ให้เป็นแหล่งข้อมูลของ dataGridView1
DataGridView1.DataSource = dt
End If
End Sub
Private Sub btnImport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImport.Click
Dim objConn As New SqlConnection
Dim strConnString, strSQL As String
Dim objCmd As SqlCommand()
strConnString = "Server=localhost;UID=sa;PASSWORD=paisolalee;database=cdrdb;Max Pool Size=400;Connect Timeout=600;"
objConn.ConnectionString = strConnString
objConn.Open()
For i = 0 To DataGridView1.RowCount - 1
strSQL = "INSERT INTO cdr(running_no,sms,username,tel_user,tel_receive,tel_sub,status_sent,status_receive,date_submit,date_server,amount_char,content_sms) " & _
" VALUES " & _
" (@running_no,@sms,@username,@tel_user,@tel_receive,@tel_sub,@status_sent,@status_receive,@date_submit,@date_server,@amount_char,@content_sms)"
objCmd = New SqlCommand(strSQL, objConn)
objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(0).value
objCmd.Parameters.Add("@sms", SqlDbType.Binary).Value = DataGridView1.Rows(i).cell(1).value
objCmd.Parameters.Add("@username", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(2).value
objCmd.Parameters.Add("@tel_user", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(3).value
objCmd.Parameters.Add("@tel_receive", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(4).value
objCmd.Parameters.Add("@tel_sub", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(5).value
objCmd.Parameters.Add("@status_sent", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(6).value
objCmd.Parameters.Add("@status_receive", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(7).value
objCmd.Parameters.Add("@date_submit", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(8).value
objCmd.Parameters.Add("@date_server", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(9).value
objCmd.Parameters.Add("@amount_char", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(10).value
objCmd.Parameters.Add("@content_sms", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(11).value
objCmd.ExecuteNonQuery()
objCmd.Parameters.Clear()
Next
MessageBox.Show("บันทึกข้อมูลแล้ว")
objConn.Close()
objConn = Nothing
End Sub
End Class
หวังว่า คุณไม่ได้บังคับคอลัมภ์ ว่าต้องมีข้อมูลในตอนออกแบบตารางนะครับ
(cells ต้องมี s ด้วย)
Code (VB.NET)
Private Sub btnImport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImport.Click
Dim objConn As New SqlConnection
Dim strConnString, strSQL As String
Dim objCmd As SqlCommand()
strConnString = "Server=localhost;UID=sa;PASSWORD=paisolalee;database=cdrdb;Max Pool Size=400;Connect Timeout=600;"
objConn.ConnectionString = strConnString
objConn.Open()
strSQL = "INSERT INTO cdr(running_no) VALUES(@running_no)"
objCmd = New SqlCommand(strSQL, objConn)
objCmd.Parameters.Add("@running_no", SqlDbType.VarChar)
For i = 0 To DataGridView1.RowCount - 1
objCmd.Parameters("@running_no").Value = DataGridView1.Rows(i).cells(0).value
objCmd.ExecuteNonQuery()
Next
MessageBox.Show("บันทึกข้อมูลแล้ว")
objConn.Close()
objConn = Nothing
End Sub
Imports System.Data
Imports System.Data.SqlClient
Imports System.Text
Public Class Form1
Private com As New SqlCommand
Private con As New SqlConnection
Private sb As New StringBuilder
Private tr As SqlTransaction
Private strsql As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub CreateConnectDB()
If con.State = ConnectionState.Open Then con.Close()
con.ConnectionString = "Data Source=127.0.01;Initial Catalog=DBProduct;Persist Security Info=True;User ID=sa;Password=1234"
con.Open()
End Sub
Private Sub CreateDataCommand(ByVal sql As String)
com.CommandType = CommandType.Text
com.CommandText = sql
com.Connection = con
com.Transaction = tr
com.Parameters.Clear()
End Sub
Private Sub InsertDataToDB()
CreateConnectDB()
tr = con.BeginTransaction()
Try
For index As Integer = 0 To DataGridView1.Rows.Count - 1
sb.Remove(0, sb.Length)
sb.Append(" Insert Into Product (ProductId,ProductName,ProductQty,ProductPrice) ")
' (" Values (type string,type string, type int , type double) ")
sb.Append(" Values (@ProductId,@ProductName,@ProductQty,@ProductPrice) ")
strsql = sb.ToString()
CreateDataCommand(strsql)
com.Parameters.AddWithValue("@ProductId", DataGridView1.Rows(index).Cells(0).Value.ToString())
com.Parameters.AddWithValue("@ProductName", DataGridView1.Rows(index).Cells(0).Value.ToString())
com.Parameters.AddWithValue("@ProductQty", Integer.Parse(DataGridView1.Rows(index).Cells(0).Value.ToString()))
com.Parameters.AddWithValue("@ProductPrice", Double.Parse(DataGridView1.Rows(index).Cells(0).Value.ToString()))
com.ExecuteNonQuery()
Next
tr.Commit()
MsgBox("บันทึกข้อมูลเรียบร้อย", MsgBoxStyle.Information, "ผลการทำงาน")
Catch ex As Exception
tr.Rollback()
MsgBox("ไม่สามารถบันทึกข้อมูลได้ เนื่องจาก" & ex.ToString(), MsgBoxStyle.Critical, "ผลการทำงาน")
End Try
End Sub
End Class