Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > รบกวนท่านผู้รู้ช่วยดูให้หน่อยค่ะว่า ทำไมหนู Import DataGridView To SQL Database ข้อมูลเข้า db ไม่ได้สักที T^T



 

รบกวนท่านผู้รู้ช่วยดูให้หน่อยค่ะว่า ทำไมหนู Import DataGridView To SQL Database ข้อมูลเข้า db ไม่ได้สักที T^T

 



Topic : 066125



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook



คือว่าหนูต้อง เก็บข้อมูลจาก datagridview เข้าไปไว้ใน sql server ค่ะ แต่มันไม่ได้สักที ไม่ได้ขึ้น error นะคะ แต่พอกด import เสร็จ แล้วหนูเข้าไปดูใน db ก็ไม่มีข้อมูลอะไรเลย หนูยังไม่เคยเรียนแต่พี่ที่ฝึกงานเค้าให้หนูทำ หนูเลยพยายามหา code มาประยุกต์ดูเอา แต่มันก็ไม่เห็นมีอะไรเกิดขึ้นเลยง่าาาา รบกวนท่านผู้รู้ช่วยดูให้หน่อยนะคะว่า หนูทำอะไรผิดตรงไหนรึเปล่า ***ขอบคุณมากๆเลยนะคะ***

problem1
problem2
problem3



Tag : .NET, Ms SQL Server 2008, Win (Windows App), VB.NET, VS 2010 (.NET 4.x)









ประวัติการแก้ไข
2011-09-07 16:05:55
2011-09-07 16:09:56
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-09-07 15:58:07 By : nUnGnInG_ReScUe View : 1599 Reply : 28
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ExecuteNonQuery() จะต้องอยู่ใน Loop ด้วยน่ะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-07 17:36:04 By : webmaster
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

Code (VB.NET)
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  


ประมาณนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-07 17:38:07 By : webmaster
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เขียนให้เลยแล้วกันครับ ให้ Check Syntax ด้วยครับ

Code (VB.NET)
			Dim objConn As New SqlConnection
			Dim strConnString, strSQL As String
			Dim objCmd As SqlCommand()

            strConnString = "Server=localhost;UID=sa;PASSWORD=;database=mydatabase;Max Pool Size=400;Connect Timeout=600;"

            objConn.ConnectionString = strConnString
            objConn.Open()			
			
			For i = 0 To DataGridView.RowCount - 1
				strSQL = "INSERT INTO files (Name,FilesName,FilesType) " & _
				" VALUES " & _
				" (@sName,@sFilesName,@sFilesType)"
				objCmd = New SqlCommand(strSQL, objConn)
				objCmd.Parameters.Add("@sName", SqlDbType.VarChar).Value = Grid.items(i).value
				objCmd.Parameters.Add("@sFilesName", SqlDbType.Binary).Value = Grid.items(i).value
				objCmd.Parameters.Add("@sFilesType", SqlDbType.VarChar).Value = Grid.items(i).value
				objCmd.ExecuteNonQuery()
			Next  

            objConn.Close()
            objConn = Nothing




Go to : ต้องการบันทึกข้อมูลจาก DataGridView ลงฐานข้อมูล Database หลาย ๆ แถวพร้อมกัน ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-07 17:41:15 By : webmaster
 


 

No. 4



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

หนูลองทำดู แล้วมันก็ขึ้น error แบบนี้อ่ะค่ะ

problem_4

error


ประวัติการแก้ไข
2011-09-07 22:47:06
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-07 22:44:39 By : nUnGnInG_ReScUe
 


 

No. 5



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตรง Grid.Item(i).value ต้องอ้างถึง DataGridView1.rows(i).cell("").value ไม่ใช่่หรือครับ

New SqlCommand() ตอนประกาศตัวแปรเลย

อย่าลืม objcmd.Parameters.Clear() หลัง objcmd.ExecuteNonquery()

ลองดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-08 09:24:40 By : ่ำVC#.Net
 


 

No. 6



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

ขอบคุณทั้งพี่วินและคุณเอ นะคะ ลองทำตามแล้ว..แต่ก็ยังไม่ได้อยู่ดีง่าาา T^T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 13:18:31 By : nUnGnInG_ReScUe
 


 

No. 7



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

คือว่า...ข้อมูลที่มันโชว์ใน datagrid มันมาจากการที่หนู browse เลือกไฟล์ขึ้นมาแล้วให้มันโชว์ใน datagrid นะคะ ไม่ทราบว่ามันเกี่ยวมั๊ยที่มัน เก็บลงใน sql ไม่ได้สักที ><
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 15:06:52 By : nUnGnInG_ReScUe
 


 

No. 8



โพสกระทู้ ( 232 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

Code (C#)
com = new SqlCommand();
  {
   com.CommandType = CommandType.Text;
   com.CommandText = savehaed;
   com.Parameters.Clear();
   com.Connection = con;
   com.Parameters.Add("@OU_Code", SqlDbType.VarChar).Value = Idou_code.ToString();
   com.Parameters.Add("@Doc_No", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[0].Value;
   com.Parameters.Add("@Bat_No", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[1].Value;
   com.Parameters.Add("@old_price", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[2].Value;
   com.Parameters.Add("@u_price", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[3].Value;
   com.Parameters.Add("@amount", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[4].Value;
   com.Parameters.Add("@totall", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[5].Value;
   com.Parameters.Add("@fg_name", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[6].Value;
   com.Parameters.Add("@add_date", SqlDbType.Date).Value = dateTimePicker1.Value.ToString("dd / MM / yyyy");
    com.ExecuteNonQuery();
  }

เอาไปเป็นตัวอย่างนะคับ


ประวัติการแก้ไข
2011-09-09 15:23:48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 15:21:34 By : Testprogram
 


 

No. 9



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

ตอบความคิดเห็นที่ : 8 เขียนโดย : Testprogram เมื่อวันที่ 2011-09-09 15:21:34
รายละเอียดของการตอบ ::
ขอบคุณนะคะ เดี๋ยวจะลองทำดู^^

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 15:32:15 By : nUnGnInG_ReScUe
 


 

No. 10



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

แงๆๆ ทำไม่ได้อ่ะ หนูลองทำตามที่ คุณA แล้วก็พี่วินบอก ก็ยังไม่ได้อยู่ดี หรือมันจะเกี่ยวกับที่หนู ใช้การ browse ไฟล์ขึ้นมาโชว์ที่ datagrid คะ รบกวนพี่ๆดู โค้ดให้หนูหน่อยนะคะ หนูลองหาโค้ดมาทำเป็นเดือนแล้วก็ไม่ได้สักที จนต้องมาโพสต์ขอความช่วยเหลือจากพี่ๆแล้วง่าาา ช่วยหน่อยนะคะ หนูต้องส่งอาทิตย์หน้าแล้ว T^T

Code (VB.NET)
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




error มันขึ้นแบบนี้อ่ะค่ะ

error3


ประวัติการแก้ไข
2011-09-09 16:40:43
2011-09-09 16:49:01
2011-09-09 16:50:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 16:37:33 By : nUnGnInG_ReScUe
 


 

No. 11



โพสกระทู้ ( 232 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

Code (VB.NET)
objCmd.Parameters.Add("@password", SqlDbType.int).Value =Convert.ToInt32(DataGridView1.Rows(i).cell("2").value)



ในฐานข้อมูลเป้นข้อมูลชนิดไหนคับ
ลอง Convert ดูนะคับ
ผมพึงเจอมาเหมือกัน
ผมไม่แน่ใจว่าคุณวาง

objCmd.Parameters.Clear()
ถูกหรือปล่าว น่าจะเอาไปวาง ข้างล่าง

next

นะคับ


ประวัติการแก้ไข
2011-09-09 16:55:56
2011-09-09 17:00:04
2011-09-09 17:03:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 16:52:55 By : Testprogram
 


 

No. 12



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

cell มันเริ่มที่ 0 ใช่ไหมคะ หนูก็ใส่ถูกแล้วไม่ใช่หรอ??

Code (VB.NET)
            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

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 16:59:53 By : nUnGnInG_ReScUe
 


 

No. 13



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

ตอบความคิดเห็นที่ : 11 เขียนโดย : Testprogram เมื่อวันที่ 2011-09-09 16:52:55
รายละเอียดของการตอบ ::
ฐานข้อมูลเป็น NVarchar หมดเลยค่ะ (แก้ใหม่แล้วค่ะ เป็น
Code (VB.NET)
objCmd.Parameters.Add("@running_no", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(0).value
            objCmd.Parameters.Add("@sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(1).value
            objCmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(2).value
            objCmd.Parameters.Add("@tel_user", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(3).value
            objCmd.Parameters.Add("@tel_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(4).value
            objCmd.Parameters.Add("@tel_sub", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(5).value
            objCmd.Parameters.Add("@status_sent", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(6).value
            objCmd.Parameters.Add("@status_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(7).value
            objCmd.Parameters.Add("@date_submit", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(8).value
            objCmd.Parameters.Add("@date_server", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(9).value
            objCmd.Parameters.Add("@amount_char", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(10).value
            objCmd.Parameters.Add("@content_sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(11).value
)



ประวัติการแก้ไข
2011-09-09 17:08:21
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 17:03:09 By : nUnGnInG_ReScUe
 


 

No. 14



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

objCmd.Parameters.Clear() วางไว้ข้างล่าง next แล้วค่ะ แต่ error ยังเท่าเดิมอยู่เลยค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 17:06:34 By : nUnGnInG_ReScUe
 


 

No. 15



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ลองเพิ่มแค่คอลัมภ์เดียวก่อน

หวังว่า คุณไม่ได้บังคับคอลัมภ์ ว่าต้องมีข้อมูลในตอนออกแบบตารางนะครับ
(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



ประวัติการแก้ไข
2011-09-09 17:14:03
2011-09-09 17:14:58
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 17:13:26 By : watcharop
 


 

No. 16



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


มัน Error ที่บรรทัดที่ 60 ครับ

Error
Dim objCmd As SqlCommand()
not Error
Dim objCmd As SqlCommand

ที่่เหลือลองไล่ Debug ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-09 17:47:36 By : ่ำVC#.Net
 


 

No. 17



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

เง้อๆๆ หนูลองทำตามที่คุณหางอึ่ง แล้วก็คุณเอบอกแล้วนะคะ แต่พอรันแล้วมันขึ้นอย่างนี้อ่าาา
errorง่าา


ประวัติการแก้ไข
2011-09-10 23:19:20
2011-09-10 23:51:14
2011-09-11 00:12:36
2011-09-11 00:42:21
2011-09-11 00:43:32
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-10 23:16:37 By : nUnGnInG_ReScUe
 


 

No. 18



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

เง้อออออ พอมีใครทราบบ้างมั๊ยคะว่ามัน error เพราะอะไรอ่าาาา??
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-11 20:13:18 By : nUnGnInG_ReScUe
 


 

No. 19



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ลองแบบนี้ดู
strConnString = "Server=localhost;UID=sa;PASSWORD=paisolalee;database=cdrdb;Max Pool Size=400;ConnectTimeout=600;"
objConn.ConnectionString = strConnString
objConn.Open()

objCmd = New SqlClient.SqlCommand(strSQL, objConn)
strSQL = "INSERT INTO cdr(running_no) VALUES(@running_no)"
objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = "111"
objCmd.ExecuteNonQuery()


ไม่ต้องวน Loop GridView
ถ้าได้ ค่อยเอา Code ไปวางใน loop
objCmd = New SqlClient.SqlCommand(strSQL, objConn)
strSQL = "INSERT INTO cdr(running_no) VALUES(@running_no)"
objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = "111"
objCmd.ExecuteNonQuery()
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-11 21:43:49 By : VC#.Net
 


 

No. 20



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

เย่ๆๆ ตอนนี้มัน import ได้แแล้วค่ะ แต่ว่า พอ browse เลือกไฟล์ เสร็จแล้วกด import แทนที่มันจะขึ้น message box โชว์ว่า "บันทึกข้อมูลแล้ว" แต่มันขึ้น warning เตือน line 82 ซึ่งก็คือ objCmd.ExecuteNonQuery() (เหมือนรูปที่หนู capture ให้ดูด้านบน) ซึ่งเหมือนมันจะ import ไม่ได้ แต่หนูลองเข้าไปดูใน sql ปรากฏว่า ข้อมูลมันได้เข้าแล้ว แล้วอย่างนี้มันหมายความว่ายังไงอ่ะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 09:07:33 By : nUnGnInG_ReScUe
 


 

No. 21



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ที่ Import ได้เพราะไม่ได้ Control Transaction รอบก่อนหน้านี้มันสามารถ Execute ผ่านได้
พอถึงรอบนี้มันจะ Error ถ้า Control Transaction มันก็จะทำการ Rollback ข้อมูลรอบก่อนหน้าก็จะไม่มี
การบันทึกครับ
http://kasem-mesak.blogspot.com/2011/02/vbnet-transaction.html

Code ไกล้สำเร็จแล้วถ้าไงลองเอา Code มา Post อีกที
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 09:56:17 By : ่ำVC#.Net
 


 

No. 22



โพสกระทู้ ( 249 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตามตัวอย่างนี้ดูครับ

Code (VB.NET)
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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 10:03:01 By : lee_latee
 


 

No. 23



โพสกระทู้ ( 249 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

โทษทีครับ ลืมเปลี่ยน index Grid
แก้ตามนี้ครับ
Code (VB.NET)
 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(1).Value.ToString())
                com.Parameters.AddWithValue("@ProductQty", Integer.Parse(DataGridView1.Rows(index).Cells(2).Value.ToString()))
                com.Parameters.AddWithValue("@ProductPrice", Double.Parse(DataGridView1.Rows(index).Cells(3).Value.ToString()))

                com.ExecuteNonQuery()
            Next

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 10:05:18 By : lee_latee
 


 

No. 24



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

เอ่อ..พี่เอคะ คือว่าหนูยังงงๆอยุ่ว่า ให้หนูทำ transaction ก่อน หรือว่า ให้หนูโพสต์ โค้ดตอนนี้ ก่อนอ่ะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 17:56:03 By : nUnGnInG_ReScUe
 


 

No. 25



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


โพสต์ โค้ดตอนนี้ ก่อน เมื่อแก้ Bug ได้แล้วค่อยปรับแก้ให้มีการ Control Transaction (ศึกษาทำความเข้าใจกับ Transaction ก่อนครับ) ซึ่งดูจากตัวอย่างที่คุณ tee นำตัวอย่างมาให้ดู
หรือว่าจะดูกระทู้เก่า ๆ ในบอร์ด์ก็ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-13 18:26:23 By : ่ำVC#.Net
 


 

No. 26



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

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()

        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).Cells(0).Value()
            objCmd.Parameters.Add("@sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(1).Value
            objCmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(2).Value
            objCmd.Parameters.Add("@tel_user", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(3).Value
            objCmd.Parameters.Add("@tel_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(4).Value
            objCmd.Parameters.Add("@tel_sub", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(5).Value
            objCmd.Parameters.Add("@status_sent", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(6).Value
            objCmd.Parameters.Add("@status_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(7).Value
            objCmd.Parameters.Add("@date_submit", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(8).Value
            objCmd.Parameters.Add("@date_server", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(9).Value
            objCmd.Parameters.Add("@amount_char", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(10).Value
            objCmd.Parameters.Add("@content_sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(11).Value
            objCmd.ExecuteNonQuery()

        Next

        objCmd.Parameters.Clear()
        MessageBox.Show("บันทึกข้อมูลแล้ว")
        objConn.Close()
        objConn = Nothing

    End Sub



อ้อ...แล้วก็ มี warning เตือนแบบนี้ด้วยนะคะ หนูไม่ทราบว่ามันมีส่วนเกี่ยวข้องไหมอ่ะค่ะ

error4
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-14 09:35:41 By : nUnGnInG_ReScUe
 


 

No. 27



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


1.เอาบรรทัดที่ 13, 14 ไปไว้ที่บรรทัด 11
เพราะถ้าวางใน Loop for การทำงานในแต่ละครั้งจะมี Step การทำงานเพิ่มขึ้นอีก 2 step ถ้ามี 100 รอบ Step การทำงาน = 100 * 2
(มันไม่ได้กระทบอะไรมากมายหรอกครับ)
2,แล้วลองเช็คบรรทัดที่ 15 ดู
3,เอาบรรทัดที่ 31 ไปวางบรรทัดที่ 28
4,ถ้าจะให้ดีลองเอา Warning ที่เห็นไปแปลดูก่อนคราวหน้าเจอจะได้แก้ได้

5.แล้วลองดูการ Control Transaction ตามแบบของคุณ tee ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-14 11:07:00 By : ่ำVC#.Net
 


 

No. 28



โพสกระทู้ ( 20 )
บทความ ( 0 )



สถานะออฟไลน์
Twitter Facebook

อ่อ หนูพอเข้าใจ transaction แล้ว จากกระทู้นี้ >> https://www.thaicreate.com/dotnet/forum/047985.html ขอบคุณนะคะ ^^


ประวัติการแก้ไข
2011-09-14 15:54:07
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-14 14:59:25 By : nUnGnInG_ReScUe
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนท่านผู้รู้ช่วยดูให้หน่อยค่ะว่า ทำไมหนู Import DataGridView To SQL Database ข้อมูลเข้า db ไม่ได้สักที T^T
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่