نقل قول: تعریف عکس در class
سلام.
کدی که نوشته اید، قبل از اینکه نتونه Image مورد نظر رو Insert کنه، ایراد مهمتری داره و اون، آسیب پذیر بودن در برابر خطرات SQL Injection هستش. برای رفع این مشکل، باید از Parametric Command ها استفاده کنید. اما در مورد چگونگی Insert یک تصویر در بانک، می تونید بدین شیوه عمل کنید.
موفق باشید.
1 ضمیمه
نقل قول: تعریف عکس در class
سلام
با این روش یک 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.NVarC har, 40).Value = Abstract;
command.Parameters.Add("@Contents",SqlDbType.NVarC har, 40).Value = Contents;
command.Parameters.Add("@AddDate",SqlDbType.NVarCh ar).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();
}
نقل قول: تعریف عکس در class
اون ارور ارتباطی به روش نداره .
پارامتری که ارسال می کنید اشتباهه .
به جای ct.imgبنویسید ct.photoFilePath
نقل قول: تعریف عکس در class
داري ct.img = FileUpload1.FileName به كلاس ارسال ميكني كه نام فايل نه آدرس فايل براي همين ارور ميده بايد آدرس ارسال كني...!
نقل قول: تعریف عکس در class
با سلام درست شد
______________
یه سوالی داشتم : مثال برای ثبتنام افراد و یا اخبار
عکس ها رو مستقیم در دیتابیس ذخیره کنم یا آنها رو از تو پوشه بخونم
__________________________________________________ __________
بعد از ثبت رکورد در دیتابیس
8 ????? ????? <p>
?????</p>
????? System.Byte[]
به این ورت در میان مشکل کجان فیلدها از نوع nvarchar