 |
|
จะเอารูปมาโชว์ใน DataGridView ต้องยังงัยครับพึ่งหัดเขียน |
|
 |
|
|
 |
 |
|
ผมจะเอารูปมาโชว์ในตาราง DataGridView คือบันขอมูลเข้าได้แต่พอโชว์ใน DataGridView มัน ERROR ครับ
'อันผมไมรู้เขียนถูกใหมรูปไม่มีมันก็ยังเซฟให้ต่องทำงัยครับ
Code (VB.NET)
Try
dlg.InitialDirectory = Application.StartupPath
dlg.Filter = "JPG|*.jpg|GIF|*.gif|PNG|*.png|BMP|*.bmp"
dlg.FilterIndex = 1
dlg.CheckFileExists = True
dlg.ShowReadOnly = False
If dlg.ShowDialog = DialogResult.OK Then
fs = New FileStream(dlg.FileName.ToString(), FileMode.Open)
fsImage = New Byte(CInt(fs.Length)) {}
fs.Read(fsImage, 0, CInt(fs.Length))
fs.Close()
'bm = CType(Image.FromFile(dlg.FileName.ToString()), Bitmap)
Label10.Text = System.IO.Path.GetFileName(dlg.FileName)
'picl = dlg.FileName
bm = CType(Image.FromFile(dlg.FileName.ToString()), Bitmap)
PictureBox1.Image = bm
End If
Catch ex As Exception
End Try
Private Sub ShowData()
Try
ds = New DataSet
da = New SqlDataAdapter("SELECT * FROM tbljob", sqlcon)
da.Fill(ds, "tbljob")
DataGridView1.DataSource = ds.Tables("tbljob")
dtpimport.Value = Date.Today
dtpexport.Value = Date.Today
Call FormatGrd()
Catch ex As Exception
MsgBox("ไม่สามารถโชว์ข้อมูลได้")
End Try
End Sub
Private Sub FormatGrd()
Try
With DataGridView1
If .RowCount <> -1 Then
.Columns(0).HeaderText = "รหัส Job"
.Columns(1).HeaderText = "ประเภทงาน"
.Columns(2).HeaderText = "รายละเอียด"
.Columns(3).HeaderText = "วันรับ"
.Columns(4).HeaderText = "วันที่เสร็จ"
.Columns(5).HeaderText = "จำนวน"
.Columns(6).HeaderText = "หมายเหตุ"
.Columns(7).HeaderText = "รูปงาน"
.Columns(0).Width = 150
.Columns(1).Width = 150
.Columns(2).Width = 150
.Columns(3).Width = 150
.Columns(4).Width = 150
.Columns(5).Width = 150
.Columns(6).Width = 200
.Columns(7).Width = 200
End If
End With
Catch ex As Exception
MsgBox("ไม่สามรถโชว์ฟอร์มใน DATA ได้")
End Try
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Try
If textjob.Text.Trim = Nothing Or System.IO.File.Exists(dlg.FileName) = False Then
MsgBox("ไม่สามารถบันบึกข้อมูลได้")
ElseIf MessageBox.Show("คุณต้องการบันทึกข้อมูลใช่หรือไม่ ?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
ds = New DataSet
'da = New SqlDataAdapter("INSERT INTO tbljob (Jobno,dateimport,Jobimage) VALUES ('" & Me.textjob.Text.Trim() & "','" & Me.dtpimport.Value.ToString("yyyy-MM-dd") & "','" & Me.PictureBox1.ImageLocation & "')", sqlcon)
da = New SqlDataAdapter("INSERT INTO tbljob (Jobno,categoryid,description,dateimport,dateexport,Qty,Remak,Jobimage) VALUES ('" & Me.textjob.Text.Trim() & "','" & Me.textcategory.Text.Trim() & "','" & Me.textdesciption.Text.Trim() & "','" & Me.dtpimport.Value.ToString("yyyy-MM-dd") & "','" & Me.dtpexport.Value.ToString("yyyy-MM-dd") & "','" & CInt(Me.textqty.Text.Trim) & "','" & Me.textremak.Text.Trim() & "','" & Me.PictureBox1.ImageLocation & "')", sqlcon)
da.Fill(ds, "tbljob")
MsgBox("บันทึกข้อมูลเรียบร้อยแล้ว")
Call ShowData()
Call cleardata()
End If
Catch ex As Exception
MsgBox("ไม่สามารถบันทึกข้อมูลได้")
End Try
End Sub

Tag : .NET, Ms SQL Server 2012, Win (Windows App), VS 2012 (.NET 4.x), Windows
|
|
 |
 |
 |
 |
Date :
2014-11-13 11:08:56 |
By :
winrar2002 |
View :
2609 |
Reply :
19 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมใช้วิธีเพิ่มเป็น path ของไฟล์ครับเพราะภาพ เหมือน vs มันจะเห็นเป็น object แล้วตอนแก้ไขมันก็ชอบ error ก็เลยตัดปัญหาเอามาเป็น path ไม่หน่วงด้วยครับเวลาโหลด database
|
 |
 |
 |
 |
Date :
2014-11-13 11:39:24 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2014-11-13 12:40:56 |
By :
winrar2002 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แต่มันอาจจะยังไม่ตอบโจทย์การใช้งานของคุณนะครับรอคนอื่นมาตอบอีกที
|
 |
 |
 |
 |
Date :
2014-11-13 13:47:31 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมก็ใช้แบบเป็น Path เอาเหมือนคุณ lamaka.tor เหมือนกันครับ พอคลิกแล้ว ให้รูปไปโชว์ ใน Picture Box ทีละรูปไป ง่ายดีครับ
ลองตามนี้ครับ รูปในดาต้ากริด
https://www.youtube.com/watch?v=nbN5V5b9tMY
|
ประวัติการแก้ไข 2014-11-14 00:05:42 2014-11-14 00:06:00
 |
 |
 |
 |
Date :
2014-11-14 00:03:17 |
By :
zarooman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

คือรูปมันโชว์ในดาต้าแล้วผมจะให้รูปมันโชว์ใน Picture ยังงัยครับ
Code (VB.NET)
If e.RowIndex = -1 Then Exit Sub
With DataGridView1
textjob.Text = .Rows.Item(e.RowIndex).Cells(0).Value.ToString()
ComboBox1.SelectedValue = .Rows.Item(e.RowIndex).Cells(1).Value.ToString()
textdesciption.Text = .Rows.Item(e.RowIndex).Cells(2).Value.ToString()
dtpimport.Value = CDate(.Rows.Item(e.RowIndex).Cells(3).Value.ToString())
dtpexport.Value = CDate(.Rows.Item(e.RowIndex).Cells(4).Value.ToString())
textqty.Text = CStr(CInt(.Rows.Item(e.RowIndex).Cells(5).Value.ToString()))
textremak.Text = .Rows.Item(e.RowIndex).Cells(6).Value.ToString()
PictureBox1.ImageLocation = .Rows.Item(e.RowIndex).Cells(7).Value.ToString()
End With
|
 |
 |
 |
 |
Date :
2014-11-26 09:01:14 |
By :
winrar2002 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
PictureBox1.ImageLocation ผมใช้ PictureBox1.formfile ครับแต่ไม่แน่ว่าจะเกี่ยวกันไม๊
ไม่เคยใช้ PictureBox1.ImageLocation
|
 |
 |
 |
 |
Date :
2014-11-26 09:42:56 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มาแก้อีกรอบ(เพิ่งไปลองมา) PictureBox1.ImageLocation ก็ได้ยุ
งั้นเป็นที่ path ครับ
ลอง MessageBox เจ้า .Rows.Item(e.RowIndex).Cells(7).Value.ToString() ดูว่าขึ้นค่าถูกต้องไม๊
อาจจะตอบเหมือนคนบ้า แต่ว่ามาววววว(เมื่อคืนหนักไปหน่อย วันนี้ยังไม่ได้ลงแล็บเลย 55555(ใครถามวะเนี๊ยะ(ประโยคบอกเหล้า)))
|
 |
 |
 |
 |
Date :
2014-11-26 09:51:59 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต้องเซทที่ Column ของ DataGridView ให้เปนแบบ Image ก่อนนะคับในColumn ที่จะแสดงภาพ
Code (VB.NET)
Private dTableTest As DataTable
Private Sub SetColTableTest()
dTableTest = New DataTable
'col: TestName TestID ImgTestTyp
dTableTest.Columns.Add("TestName", Type.GetType("System.String"))
dTableTest.Columns.Add("TestID", Type.GetType("System.String"))
dTableTest.Columns.Add("ImgTestType", Type.GetType("System.Object"))
End Sub
Private Sub SetRowTableTest()
If dTableTest Is Nothing Then Call SetColTableTest()
dTableTest.Rows.Clear()
Dim strSQL As String = "SELECT TST.TestName, TST.TestID, TST.ImgType" & _
" FROM .[dbo].[Test] AS TST;"
Dim strRespond As String = SendRequest(HospitalEnum.Request.Read, strSQL).Trim
Dim arrRowText() As String
Dim arrColText() As String
im newRow As DataRow
arrRowText = strRespond.Split(New Char() {"|"c})
For Each textRow As String In arrRowText
If textRow <> "" Then
arrColText = textRow.Split(New Char() {"~"c})
If arrColText.Length <> 3 Then Continue For
hospDepID = arrColText(2).Trim
If hospDepID.IndexOf("_") > -1 Then hospDepID = hospDepID.Substring(0, hospDepID.IndexOf("_"))
hospDepID = hospDepID.Replace("HD", "").Trim
newRow = dTableTest.NewRow
'col: TestName TestID ImgTestTyp
newRow(0) = arrColText(0)
newRow(1) = arrColText(1).Trim
If arrColText(2).Trim = "TG" Then
newRow(3) = ImlTestType.Images(1)
ElseIf arrColText(2).Trim = "T" Then
newRow(3) = ImlTestType.Images(2)
Else
newRow(3) = ImlTestType.Images(0)
End If
dTableTest.Rows.Add(newRow)
End If 'textRow
Next 'textRow
End Sub
Private Sub DispTestList(ByVal dispTable As DataTable)
'dgvTest คือ DataGridView
dgvTest.AutoGenerateColumns = False
dgvTest.DataSource = dispTable
'col: TestName TestID ImgTestType
dgvTest.Columns(0).DataPropertyName = dispTable.Columns(0).ColumnName
dgvTest.Columns(1).DataPropertyName = dispTable.Columns(1).ColumnName
dgvTest.Columns(2).DataPropertyName = dispTable.Columns(2).ColumnName
End Sub
ผมเอาภาพที่จะแสงมาเก็บไว้ที่ ImageList ก่อนนะคับโดยกำหนัดชื่อเป็น ImlTestType
Code (VB.NET)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Call SetRowTableTest()
Call DispTestList(dTableTest)
End Sub
|
 |
 |
 |
 |
Date :
2014-11-26 12:47:27 |
By :
pong |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

ขอถามครับ
ใน DataGridView เป็นรูปหรือเป็น path
|
 |
 |
 |
 |
Date :
2014-11-26 13:07:28 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็น Binary data ครับ
คือเอาโค๊ดมาย้ำกันจนได้แบบเนียครับคือหาดูตามเว็บมาต้องบอกบอกเลยมาผมไม่รู้หลักการเขียนเลย
คือตอน inser ข้อมูลลงผมเขียนแบบเนียครับ
If textjob.Text.Trim = Nothing Or textqty.Text.Trim = Nothing Or ComboBox1.Text = Nothing Or textdesciption.Text.Trim = Nothing Or System.IO.File.Exists(Me.dlg.FileName) = False Then
MsgBox("กรุณาใส่ข้อูลให้ครบด้วย")
ElseIf MessageBox.Show("คุณต้องการบันทึกข้อมูลใช่หรือไม่ ?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
ds = New DataSet
'da = New SqlDataAdapter("INSERT INTO tbljob (Jobno,categoryid,description,dateimport,dateexport,Qty,Remak) VALUES ('" & Me.textjob.Text.Trim() & "','" & Me.ComboBox1.SelectedValue.ToString & "','" & Me.textdesciption.Text.Trim() & "','" & Me.dtpimport.Value.ToString("yyyy-MM-dd") & "','" & Me.dtpexport.Value.ToString("yyyy-MM-dd") & "','" & CInt(Me.textqty.Text.Trim) & "','" & Me.textremak.Text.Trim() & "')", sqlcon)
da = New SqlDataAdapter("INSERT INTO tbljob (Jobno,categoryid,description,dateimport,dateexport,Qty,Remak,Image) VALUES (@Jobno,@categoryid,@description,@dateimport,@dateexport,@Qty,@Remak,@img)", sqlcon)
Dim cmd As SqlCommand = da.SelectCommand
Dim Jobno As SqlParameter = New SqlParameter("@Jobno", System.Data.SqlDbType.VarChar, 50)
Jobno.Value = textjob.Text.Trim.ToString()
cmd.Parameters.Add(Jobno)
Dim categoryid As SqlParameter = New SqlParameter("@categoryid", System.Data.SqlDbType.VarChar, 10)
categoryid.Value = ComboBox1.SelectedValue.ToString
cmd.Parameters.Add(categoryid)
Dim description As SqlParameter = New SqlParameter("@description", System.Data.SqlDbType.VarChar, 50)
description.Value = textdesciption.Text.Trim.ToString()
cmd.Parameters.Add(description)
Dim dateimport As SqlParameter = New SqlParameter("@dateimport ", System.Data.SqlDbType.Date)
dateimport.Value = dtpimport.Value.ToString("yyyy-MM-dd")
cmd.Parameters.Add(dateimport)
Dim dateexport As SqlParameter = New SqlParameter("@dateexport", System.Data.SqlDbType.Date)
dateexport.Value = dtpexport.Value.ToString("yyyy-MM-dd")
cmd.Parameters.Add(dateexport)
Dim Qty As SqlParameter = New SqlParameter("@Qty", System.Data.SqlDbType.Int)
Qty.Value = textqty.Text.Trim.ToString()
cmd.Parameters.Add(Qty)
Dim Remak As SqlParameter = New SqlParameter("@Remak", System.Data.SqlDbType.VarChar, 50)
Remak.Value = textremak.Text.Trim.ToString()
cmd.Parameters.Add(Remak)
Dim img As SqlParameter = New SqlParameter("@img", System.Data.SqlDbType.Image)
img.Value = fsImage
cmd.Parameters.Add(img)
cmd.ExecuteNonQuery()
'da.Fill(ds, "tbljob")
MsgBox("บันทึกข้อมูลเรียบร้อยแล้ว")
Call ShowData()
Call cleardata()
End If
Catch ex As Exception
MessageBox.Show(ex.Message.ToString(), "Error")
End Try

|
 |
 |
 |
 |
Date :
2014-11-26 14:23:17 |
By :
winrar2002 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|