PDA

View Full Version : نحوه قراردادن یک فایل روی پایگاه داده



kuchulu
سه شنبه 06 دی 1390, 10:00 صبح
من میخوام روی پایگاه داده ام یکسری فایل قرار بدم که اگر حتی اون فایل پاک شد، هنوز هم تو پایگاهم وجود داشته باشه و بتونم اجراش کنم
نمیدونم در کل چیکار کنم و یا اینکه فیلدم رو از چه نوعی انتخاب کنم
خیلی سریع کمک میخوام

Mohammad_chz
سه شنبه 06 دی 1390, 10:15 صبح
میشه بیشتر توضیح بدید. یه کم سئوالتون نا مفهومه.

kuchulu
سه شنبه 06 دی 1390, 10:30 صبح
میشه بیشتر توضیح بدید. یه کم سئوالتون نا مفهومه.

میخوام مثلا یک فایل DOC تو پایگاه داده ام بذارم. و اگر اون فایل از مسیر اصلیش پاک شد هنوز هم از تو پایگاه داده بهش دسترسی داشته باشم.
مثل موقعی که یک عکس تو پایگاه داده میذاریم.
از SQl و زبان C# هم استفاده میکنم.

Mohammad_chz
سه شنبه 06 دی 1390, 10:45 صبح
یه فایل DOC حاوی مقدار زیادی اطلاعات Meta Data هست که به صورت معمول نمیتونید اونها رو در پایگاه داده ذخیره کنید. ولی متن موجود توی فایل رو می تونید در یک فیلد از نوع Ntext ذخیره کنید.
البته محدودیتهای این نوع داده رو هم از نظر تعداد کاراکتر (بسته به نوع سخت افزار و نرم افزار شما) در نظر بگیرید.

kuchulu
سه شنبه 06 دی 1390, 11:09 صبح
یه فایل DOC حاوی مقدار زیادی اطلاعات Meta Data هست که به صورت معمول نمیتونید اونها رو در پایگاه داده ذخیره کنید. ولی متن موجود توی فایل رو می تونید در یک فیلد از نوع Ntext ذخیره کنید.
البته محدودیتهای این نوع داده رو هم از نظر تعداد کاراکتر (بسته به نوع سخت افزار و نرم افزار شما) در نظر بگیرید.

DOC فقط یک مثال بود
من میخوام به فرم هام از این طریق پیوست بدم

کسی نیست کمک کنه!!!!!!!!!!!!!!

Esmail Solhkhah
چهارشنبه 07 دی 1390, 00:16 صبح
فایل مورد نظر رو بصورت آرایه بایتی تبدیل کنید ، نوع فیلد varbinary(MAX)

این مقاله (http://research.microsoft.com/apps/pubs/default.aspx?id=64525)
از مایکروسافت رو پیشنهاد میکنم بخونید.

موفق باشید.

kuchulu
پنج شنبه 08 دی 1390, 12:51 عصر
من این کد رو واسه قراردادن فایل توی دیتابیسم نوشتم
حالا چطور میتونم وقتی اون رو از دیتابیس گرفتم، اجراش کنم


private void button2_Click(object sender, EventArgs e)
{
long m_FileLength = 0;
byte[] m_barrImg = { 0 };

try
{
openFileDialog1.FileName = "";

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{

string strFn = this.openFileDialog1.FileName;

FileInfo f = new FileInfo(strFn);

FileInfo fiImage = new FileInfo(strFn);

m_FileLength = fiImage.Length;

FileStream fs = new FileStream(strFn, FileMode.Open, FileAccess.Read, FileShare.Read);

m_barrImg = new byte[Convert.ToInt32(m_FileLength)];

int iBytesRead = fs.Read(m_barrImg, 0, Convert.ToInt32(m_FileLength));

fs.Close();

}



}

catch (Exception ex)
{

MessageBox.Show(ex.Message);

}

SqlConnection connection1 = new SqlConnection(connectionstring.ConnStr);
SqlCommand command1 = new SqlCommand("insert into table_1 (name)values(@name) ", connection1);
command1.Parameters.AddWithValue("@name", m_barrImg);
connection1.Open();
command1.ExecuteNonQuery();
connection1.Close();

}