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(stream, Imaging.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
ولكن أظهر لي خطأ في العمل ..
01-05-13, 11:08 AM (آخر تعديل لهذه المشاركة : 01-05-13, 11:12 AM {2} بواسطة ѕαLσσσмx.)
إقتباس :
ولكن أنا لا أضمن أن يكون نفس الامتداد في كل جهاز يتثبت فيه برنامج
حلها بسيط وهي باستخدام Environment
اكتبيها واكتبي بعدها . نقطة ثم اختاري مجلد الصور ثم بعدها اسم الصورة
لكن؟
لدي راي افضل (من وجهة نظري) وهي تمكين المحتوى الفارغ في الجدول لعمود الصور ثم عند استقبال البيانات يتم فحص السجل ان كان فارغا يتم اظهار الصورة سواء من الريسورس ام من مجلد الصور.
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
بالنسبة للطريقة الأولى، هل أكتبها بهذا الشكل:
OpenFileDialog1.path= Environment.SpecialFolder.MyPictures
ولي استفسار من فضلك:
عندما أريد قراءة عمود من جدول (select exampel from exampel)
وأضعه في textbox ، أجد أنه لم يقرأ إلا السطر الأول أو الحقل الأول فقط .. فكيف أجلب بقية النتائج في نفس الtextbox ؟