1 ضمیمه
	
	
		مشکل در ثبت مسیر عکس در دیتابیس
	
	
		سلام دوستان
من یک مشکل دارم اونم ثبت عکس در دیتابیس هست
میخوام عکسم رو تو دیتابیس ذخیره کنم و کدی که زدم اینه :
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim con As New SqlConnection()
        con.ConnectionString = "server=HAMED-PC;database=Hospital;Integrated security=yes"
        con.Open()
        Dim com As New SqlCommand()
        com.Connection = con
        Dim sql As String
        Dim rnd As New Random
        Dim temp As String
        temp = rnd.Next(1, 100).ToString()
        File.Copy(ImgPath, My.Application.Info.DirectoryPath & "\" & temp & ".JPG")
        Dim stream As New FileStream(My.Application.Info.DirectoryPath & "\" & temp & ".JPG", FileMode.Open)
        Dim reader As New BinaryReader(stream)
        Dim imgByte() As Byte
        imgByte = reader.ReadBytes(stream.Length)
        Dim s As String
        If (RadioButton1.Checked = True) Then
            s = 0
        ElseIf (RadioButton2.Checked = True) Then
            s = 1
        End If
        If s = 0 Then
            s = "Male"
        Else
            s = "Female"
        End If
        sql = "INSERT INTO Login(UserName,Password,Sex,picture) VALUES ('{0}','{1}','{2}',@picture)"
        sql = String.Format(sql, TextBox1.Text, TextBox2.Text, s)
        com.Parameters.Add("@picture", SqlDbType.VarBinary).Value = imgByte
        com.CommandText = sql
        com.ExecuteNonQuery()
        MsgBox("SAVED")
        com.CommandText = "select * From Login"
        Dim da As New SqlDataAdapter(com)
        Dim dt As New DataTable
        da.Fill(dt)
        DataGridView1.DataSource = dt
        con.Close()
        Dim Cnn As New SqlClient.SqlConnection
        Dim Comm As New SqlClient.SqlCommand
        Cnn.ConnectionString = "Server=Hamed-PC;Database=Hospital;Trusted_Connection=True;"
        Cnn.Open()
        Comm.Connection = Cnn
        Comm.CommandType = CommandType.Text
        MsgBox(ImgPath)
        Dim strSQL As String
        strSQL = "INSERT INTO Login(picture) VALUES ('{0}')"
        strSQL = String.Format(strSQL, ImgByte)
    End Sub
اما وقتی میرم تو دیتابیس میبینم اینطوری ذخیره شده (حروف چینی) :
ضمیمه 99401
حالا میخوام به یک Picturebox مسیر عکس رو بدم که نمایش بده ولی نمیشه و چیزی نمایش داده نمیشه
باید چکار کنم ؟ ممنون
	 
	
	
	
		نقل قول: مشکل در ثبت مسیر عکس در دیتابیس
	
	
		سلام اینطوری نمیشه برنامه رو ضمیمه کن
	 
	
	
	
		نقل قول: مشکل در ثبت مسیر عکس در دیتابیس
	
	
		
	نقل قول:
	
		
		
			
				نوشته شده توسط 
Ship Storm
				 
			حالا میخوام به یک Picturebox مسیر عکس رو بدم که نمایش بده ولی نمیشه و چیزی نمایش داده نمیشه
باید چکار کنم ؟ ممنون
[/RIGHT]
[/LEFT]
			
		
	 
  سلام
دوست عزیز  در کد بالا شما خود عکس رو به بایت تبدیل کرده و در بانک ذخیره میکند و نه مسیر عکس.
در این حال شما موقع نمایش عکس باید دوباره بایت رو به Image تبدیل کنید.
	 
	
	
	
		نقل قول: مشکل در ثبت مسیر عکس در دیتابیس
	
	
		سلام
اول چک کنید که نوع ستون Picture  از نوع ( VarBinary(Max باشه
کدتون رو هم میشه کوتاه تر و بهینه تر کرد:
تو امضای من هم می تونید دو تا نمونه واسه ذخیره فایل تو دیتابیس(مخصوصا فایل های بزرگتر از یه تصویر) پیدا کنید 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim con As New SqlConnection()
            con.ConnectionString = "server=HAMED-PC;database=Hospital;Integrated security=yes"
            Dim com As New SqlCommand()
            com.Connection = con
            Dim sql As String
            Dim imgByte = IO.File.ReadAllBytes(ImgPath)
            Dim s As String = If(RadioButton1.Checked, "Male", "Female")
            sql = "INSERT INTO Login(UserName,Password,Sex,picture) VALUES (N'{0}',N'{1}','{2}',@picture)"
            sql = String.Format(sql, TextBox1.Text, TextBox2.Text, s)
            com.Parameters.AddWithValue("@picture", imgByte)
            com.CommandText = sql
            con.Open()
            com.ExecuteNonQuery()
            MsgBox("SAVED")
            com.CommandText = "select * From Login"
            Dim da As New SqlDataAdapter(com)
            Dim dt As New DataTable
            da.Fill(dt)
            con.Close()
            DataGridView1.DataSource = dt
        Catch ex As Exception
            MsgBox("Error:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
        End Try
    End Sub