منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ما طريقة عمل صورة افتراضية في قاعدة البيانات ؟
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ،

ما طريقة وضع صورة افتراضية في القاعدة ، بحيث إذا لم يقم المستخدم بإدخال صورة في البرنامج تظهر له صورة بشكل تلقائي ؟

وشكرا
السلام عليكم ورحمة الله وبركاته
الأمر بسيط خالص :
نضع صوره في الريسورس

PHP كود :
Try
            
Dim Op As New OpenFileDialog
            With Op

              
.Filter = ("Bitmap | *.jpg")
                If .
ShowDialog Windows.Forms.DialogResult.OK Then

                    PictureBox1
.Load(.FileName)

                
End If
                If 
IsNothing(PictureBox1.ImageThen

                    PictureBox1
.Image My.Resources.MyImage
                End 
If
            
End With
        
Catch ex As Exception

        End 
Try 
وضعت صورة في الريسورس باسم myImage

لكن ما فهمت الكود الذي وضعته..

هذا كودي المستخدم في حفظ الصورة:


PHP كود :
Dim file_path As String
            file_path 
txt_file_path.Text

            
''يختبر تحميل صورة من الكمبيوتر
            
If txt_file_path.Text.Trim <> "" Then
                
''يقوم بعمل متغير من النوع صورة ويحفظ بداخله الصورة المحملة
                Dim picture 
As Image Image.FromFile(file_path)
                
''يقوم بتعريف متغير من نوع ذاكرة
                Dim stream 
As New IO.MemoryStream
                
''يقوم بحفظ متغير الصورة والذى يحتوى على الصورة داخل متغير الذاكرة
                picture
.Save(streamImaging.ImageFormat.Jpeg)
                
''تمرير قيمة متغير الذاكرة إلى البارامتر
                com_add
.Parameters("@Statuse_photo").Value stream.GetBuffer()
            
End If 


ماذا اضيف عليه ؟

وشكرا
السلام عليكم ورحمة الله وبركاته
انا الأفضل اعمل لك مثال في المرفقات .

جزاكم الله كل خير

أنا المشكلة لدي أني لا أستطيع تغيير أكوادي في حفظ الصورة (لأن البرنامج عمل بعد مشقة كبيرة)

في حالة لم يقم المستخدم بإدخال صورة من خلال OpenFileDialog فإن البرنامج يظهر خطأ في العمل
فقمت بحل هذه المشكلة بكتابة هذا الأمر:


' في حالة ترك الصورة فارغة
If txt_file_path.Text = "" Then
txt_file_path.Text = "C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg"

بمعنى لو ترك المستخدم القيمة فارغة، فقم بإدخال امتداد افتراضي (وهو الصورة الموجودة في النماذج)
ولكن أنا لا أضمن أن يكون نفس الامتداد في كل جهاز يتثبت فيه برنامج + أني أريد أن تظهر صورة افتراضية أنا أختارها
بمعنى أني أريد كود يملأ لي OpenFileDialog فقط .. بحيث يأخذها من الريسورس كما ذكريتم

جربت هذا الكود
OpenFileDialog1.path = my.resource.myImage
ولكن أظهر لي خطأ في العمل ..

فما الطريقة لذلك ؟

وشكرا
إقتباس :
ولكن أنا لا أضمن أن يكون نفس الامتداد في كل جهاز يتثبت فيه برنامج
حلها بسيط وهي باستخدام Environment
اكتبيها واكتبي بعدها . نقطة ثم اختاري مجلد الصور ثم بعدها اسم الصورة
لكن؟
لدي راي افضل (من وجهة نظري) وهي تمكين المحتوى الفارغ في الجدول لعمود الصور ثم عند استقبال البيانات يتم فحص السجل ان كان فارغا يتم اظهار الصورة سواء من الريسورس ام من مجلد الصور.




الكلاس الخاص بالفورم
كود :
Imports System.Data.OleDb

Public Class Form1


    Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb"
    Dim con As New OleDbConnection(str)
    Dim p() As Byte
    Dim ds As New DataSet


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim ofd As New OpenFileDialog
        If ofd.ShowDialog = vbOK Then
            TextBox2.Text = ofd.FileName
            p = My.Computer.FileSystem.ReadAllBytes(TextBox2.Text.Trim)


        End If
    End Sub


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        getdata()
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text.Trim = "" Then
            MsgBox("اما الاسم لابد من كتابته", MsgBoxStyle.Critical, "")


            Exit Sub
        End If
        Dim cm As New OleDbCommand("", con)
        If IsNothing(p) Then
            cm.CommandText = ("insert into tb (tname) values(@tname)")
            cm.Parameters.AddWithValue("@tname", Data.DbType.String).Value = TextBox1.Text


            If con.State = ConnectionState.Closed Then
                con.Open()
            End If
            cm.ExecuteNonQuery()
            MsgBox("تم حفظ الاسم")


        Else
            cm.CommandText = "insert into tb (tname,pic) values(@tname,@pic)"
            cm.Parameters.AddWithValue("@tname", Data.DbType.String).Value = TextBox1.Text
            cm.Parameters.AddWithValue("@pic", Data.DbType.Binary).Value = p


            If con.State = ConnectionState.Closed Then
                con.Open()
            End If
            cm.ExecuteNonQuery()
            MsgBox("تم حفظ الاسم والصورة")


        End If
        getdata()


    End Sub
    Sub getdata()
        Dim da As New OleDbDataAdapter("select tname,pic from tb", con)
        ds.Clear()
        tname.DataBindings.Clear()
        pic.DataBindings.Clear()
        'pic.Image.Dispose()


        da.Fill(ds, "tb")


        tname.DataBindings.Add("text", ds, "tb.tname")
        pic.DataBindings.Add("image", ds, "tb.pic", True)
        If IsNothing(pic.Image) Then
            pic.Image = My.Resources.nopic
        End If




    End Sub


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Me.BindingContext(ds, "tb").Position -= 1
        If IsNothing(pic.Image) Then
            pic.Image = My.Resources.nopic
        End If


    End Sub


    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.BindingContext(ds, "tb").Position += 1
        If IsNothing(pic.Image) Then
            pic.Image = My.Resources.nopic
        End If


    End Sub
End Class


وهذا المثال
http://vb4arb.com/vb/uploaded/34_01367394810.zip
اكسس 2007 و فيجوال 2010
تعديل بسيط للمثال وهو افراغ المتغير p من محتواه بعد الحفظ
p=nothing
جزاكم الله خيرا ،

بالنسبة للطريقة الأولى، هل أكتبها بهذا الشكل:
OpenFileDialog1.path= Environment.SpecialFolder.MyPictures

ولي استفسار من فضلك:
عندما أريد قراءة عمود من جدول (select exampel from exampel)
وأضعه في textbox ، أجد أنه لم يقرأ إلا السطر الأول أو الحقل الأول فقط .. فكيف أجلب بقية النتائج في نفس الtextbox ؟

وشكرا
السؤال الاول افضل مرجع له
http://msdn.microsoft.com/en-us/library/...s.71).aspx


السؤال الاخر .. شيء طبيعي والحل استخدام &= بدلا من =
الصفحات : 1 2