Add จาก Listview ลง Database (vb 2010 & SQL 2008) ยังไงคะ ช่วยหนูทีค่ะ
มัน ERROR ว่า "Object reference not set to an instance of an object."
หนูเข้าใจว่ามันน่าจะผิดทั้ง 2 บรรทัดเลยช่ายมั้ยคะ
แล้วรูปแบบการแอดจาก Listview ลง Database มันต้องแบบไหนอ่ะคะ
ช่วยหนูหน่อยนะคะ ขอบคุณค่าาา
Date :
2011-05-25 15:23:30
By :
แค่เด็กตัวเล๊กๆคนนึง
อันนี้คือ code ตอนที่จะแอดแบบเตมๆนะคะ
Code (VB.NET)
Try
Tranfer_id() ' sub ที่ใช้กำหนดTranfer_id
sb = New StringBuilder
sb.Append("INSERT INTO STAFF_TR(User_id,Tranfer_id,Date_TR,To_Site,Site_code,Date_start)")
sb.Append(" VALUES(@User_id,@tranfer_id,@date,@Site_code_tr,@Site_code,Date_start)")
com = New SqlCommand
connection()
With com
.CommandText = sb.ToString
.CommandType = CommandType.Text
.Connection = conn
.Parameters.Add("@User_id", SqlDbType.VarChar).Value = txtsearch.Text.Trim
.Parameters.Add("@tranfer_id", SqlDbType.VarChar).Value = id
.Parameters.Add("@date", SqlDbType.Date).Value = destart.EditValue
.Parameters.Add("@Site_code_tr", SqlDbType.VarChar).Value = site_id.Item(cbosite.SelectedIndex)
'ด้านบนนี้เป็นการแอดลงธรรมดาจาก textbox และ combobox ธรรมดาค่ะ
.Parameters.Add("@Site_code", SqlDbType.VarChar).Value = liv.SubItems.Add(ds.Tables("V_User_TH").Rows(0)("Site_code").ToString)
.Parameters.Add("@Date_start", SqlDbType.Date).Value = liv.SubItems.Add(destart.DateTime)
' 2อันบนนี้ที่ต้องการแอดจาก Listview น่ะค่ะ
.ExecuteNonQuery()
End With
conn.Close()
MessageBox.Show("ย้ายข้อมูลเรียบร้อยแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
Exit Sub
Catch ex As Exception
MessageBox.Show(ex.Message, "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
ช่วยหนูทีนะคะ ขอบคุณค่ะ
Date :
2011-05-25 15:30:33
By :
แค่เด็กตัวเล๊กๆคนนึง
Code (VB.NET)
liv.SubItems.Add(ds.Tables("V_User_TH").Rows(0)("Site_code").ToString)
คำสั่งประมาณนี้ มันไม่น่าใช่การ Get ค่าออกมาจาก Listview นะครับน่าจะประมาณนี้มากกว่า
Code (VB.NET)
Liv.Items(0).SubItems(1).ToString
Date :
2011-05-25 15:43:05
By :
kaimuk
ขอบคุณค่ะ ทำไม่ได้อยู่ดีอ่าค่ะ T^T เลือดตาจะกระเด็นไม่รู้จะทำไงดี
คือข้อมูลนี้ถ้าหนูจะไม่เก็บจาก Listview ตัวนี้อ่ะค่ะหนูเก็บจากใน database เลยได้รึปล่าวคะ มันจะง่ายกว่าไหมคะ
ที่จริงมันเป็น combobox ที่หนูเลือกมาจากใน database โชว์ใน Listview อีกทีนี่ค่ะ
Date :
2011-05-25 17:05:56
By :
แค่เด็กตัวเล๊กๆคนนึง
มัน error ตอนที่จะแอดข้อมูลจาก Listview ลงดาต้าเบสอ่ะคะ
คือหนูไม่รู้ว่าการแอดค่า พารามิเตอร์ เข้าดาต้าเบสมันต้องยังไงอ่ะค่ะ
ถ้าแอดจากคอมโบบ๊อก เทคบ๊อกทำได้อยู่ค่ะ
แต่พอมาแอดจาก listview ทำไม่ได้อ่าค่ะ
คือมันจะต้องเป็น .Parameters.Add("@Site_code", SqlDbType.VarChar).Value = .......(ค่าที่อยู่ใน listview อ่ะค่ะ)
คือมัน Get ค่าออกมาแสดงทาง Listview แล้วอ่ะค่ะ แต่หนูไม่รุวิธีบันทึกลงดาต้าเบสอย่างถุกต้องน่ะค่ะ
Date :
2011-05-28 09:36:16
By :
แค่เด็กตัวเล๊กๆคนนึง
ใช้ Listview แสดงว่าข้อมูลต้องมีมากกว่า 1 บรรทัดถูกต้องมั้ยคะดังนั้นต้องวน Loop ใน Listview ค่ะ ลองประยุกต์ดูค่ะ
Code (VB.NET)
For i = 0 To ListView4.Items.Count - 1
sql = "INSERT INTO TbleName (Culumn1,Column2,Column3)
VALUES('" & ListView1.Items(i).SubItems(0).Text & "',
'" & ListView1.Items(i).SubItems(1).Text & "',
'" & ListView1.Items(i).SubItems(2).Text & "')"
da = New OleDbDataAdapter(sql, cn)
cmd = New OleDbCommand(sql, cn)
cmd.CommandText = sql
cmd.ExecuteNonQuery()
Next
Date :
2011-05-28 11:29:51
By :
เปิ้ล (พิมพ์ณภา)
ขอบคุณมากนะคะ ตอนนี้ทำได้แล้วค่ะ code เป็นแบบนี้น่ะค่ะ
Code (VB.NET)
For i = 0 To ListView1.Items.Count - 1
sb = New StringBuilder
sb.Append("INSERT INTO STATT_TR_DETAIL(Transfer_id,User_id,From_Site,datestart)")
sb.Append(" VALUES(@tranfer_id,@User_id,@Site_code,@datestart)")
com = New SqlCommand
connection()
With com
.CommandText = sb.ToString
.CommandType = CommandType.Text
.Connection = conn
.Parameters.Add("@tranfer_id", SqlDbType.VarChar).Value = id
.Parameters.Add("@User_id", SqlDbType.VarChar).Value = txtsearch.Text.Trim
.Parameters.Add("@From_Site", SqlDbType.VarChar).Value = site_code
.Parameters.Add("@datestart", SqlDbType.Date).Value = destart
.ExecuteNonQuery()
End With
conn.Close()
Next
Date :
2011-05-30 11:02:07
By :
แค่เด็กตัวเล๊กๆคนนึง
ลองประยุคใช้น่ะคับ ของผม เป็น VB2008 +SQL2005 คับ
ผมใช้เเบบนี้คับ
Date :
2011-05-30 11:10:13
By :
crazy-Ugly
Load balance : Server 02