View Full Version : سوال: تعریف عکس در class
fakhravari
یک شنبه 27 شهریور 1390, 00:58 صبح
با سلام
دوستان من می خواهم عکس رو به کلاس اضافه کنم
من کد img گذاشتم اما با روش های قیلی کار نمی کنه
نمونه کلاس
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
public class Comments
{
public string Title;
public string Abstract;
public string Contents;
public string AddDate;
public int NewsID;
public string img;
public string lastEror;
public void Add()
{
try
{
string sql = "Insert into TBLNews (Title, Abstract, Contents, AddDate,img)";
sql += " values ('{0}','{1}','{2}','{3}','{4}')";
sql = string.Format(sql,
this.Title, this.Abstract, this.Contents, this.AddDate,this.img);
da.connect();
da.docommand(sql);
da.Disconnect();
}
catch
{
lastEror = "در اجراع دستور مشکلی به وجود امده است";
}
}}
اگه میشه در مورد گذاستن کد عکس در کلاس و نحوه insert و serch بعد از فراخوانی
مثال بزنید
mehdi.mousavi
یک شنبه 27 شهریور 1390, 01:08 صبح
سلام.
کدی که نوشته اید، قبل از اینکه نتونه Image مورد نظر رو Insert کنه، ایراد مهمتری داره و اون، آسیب پذیر بودن در برابر خطرات SQL Injection هستش. برای رفع این مشکل، باید از Parametric Command ها استفاده کنید. اما در مورد چگونگی Insert یک تصویر در بانک، می تونید بدین شیوه عمل کنید (http://msdn.microsoft.com/en-us/library/4f5s1we0.aspx).
موفق باشید.
fakhravari
یک شنبه 27 شهریور 1390, 02:36 صبح
سلام
با این روش یک eror رخ می ده
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public class AddRecord
{
public string Title;
public string Abstract;
public string Contents;
public string AddDate;
public int NewsID;
public string photoFilePath;
public string img;
public void AddRecord1()
{
byte[] photo = GetPhoto(photoFilePath);
SqlConnection connection = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=DatabaseCenter;Integrated Security=True") ;
SqlCommand command = new SqlCommand(
"INSERT INTO TBLNews (Title, Abstract, " +
"Contents, AddDate, img) " +
"Values(@Title, @Abstract, @Contents, " +
"@AddDate, @img)", connection);
command.Parameters.Add("@Title",SqlDbType.NVarChar, 40).Value = Title;
command.Parameters.Add("@Abstract",SqlDbType.NVarChar, 40).Value = Abstract;
command.Parameters.Add("@Contents",SqlDbType.NVarChar, 40).Value = Contents;
command.Parameters.Add("@AddDate",SqlDbType.NVarChar).Value = AddDate;
command.Parameters.Add("@img",SqlDbType.Image, photo.Length).Value = photo;
connection.Open();
command.ExecuteNonQuery();
}
public static byte[] GetPhoto(string filePath)
{
FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] photo = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
return photo;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
AddRecord ct = new AddRecord();
ct.Title = TextBox1.Text;
ct.AddDate = TextBox5.Text;
ct.Abstract = TextBox4.Text;
ct.Contents = CKEditor.Text.ToString();
ct.img = FileUpload1.FileName;
ct.AddRecord1();
}
A.S.Roma
یک شنبه 27 شهریور 1390, 09:14 صبح
اون ارور ارتباطی به روش نداره .
پارامتری که ارسال می کنید اشتباهه .
به جای ct.imgبنویسید ct.photoFilePath
Saman Hashemi
یک شنبه 27 شهریور 1390, 09:28 صبح
داري ct.img = FileUpload1.FileName به كلاس ارسال ميكني كه نام فايل نه آدرس فايل براي همين ارور ميده بايد آدرس ارسال كني...!
fakhravari
یک شنبه 27 شهریور 1390, 13:12 عصر
با سلام درست شد
______________
یه سوالی داشتم : مثال برای ثبتنام افراد و یا اخبار
عکس ها رو مستقیم در دیتابیس ذخیره کنم یا آنها رو از تو پوشه بخونم
__________________________________________________ __________
بعد از ثبت رکورد در دیتابیس
8 ????? ????? <p>
?????</p>
????? System.Byte[]
به این ورت در میان مشکل کجان فیلدها از نوع nvarchar
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.