PDA

View Full Version : مبتدی: مشکل ذخیره فایل در دیتابیس



mortezasar
یک شنبه 13 اسفند 1391, 15:04 عصر
سلام من میخوام فایل پی دی اف رو توی دیتا بیسم ذخیره کنم اما این خطا رو میده
لطفا راهنمایی کنید
سلام واسه ذخیره از این کد استفاده کردم


FileStream fs = File.OpenRead(txtaddres.Text);
byte[] fileData = new byte[fs.Length];
fs.Read(fileData, 0, fileData.Length);
SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=COPY_CENTER;Integrated Security=True");
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
string sql =
"Insert BOOK (cat_id,tech_id,name,price,data)";
sql += "values ({0},{1},'{2}',{3},{4}) ";
sql = string.Format(sql,
catid,
techid,
txtjozname.Text.Trim(),
txtprice.Text.Trim(),
fileData);
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
conn.Close();



100807
متن اروری هم که میده اینه

An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as "" or [] are not allowed. Change the alias to a valid name.
Incorrect syntax near ''.

pedram.11
یک شنبه 13 اسفند 1391, 15:09 عصر
فک کنم INTO رو بغل Insert جا گذاشتی

mortezasar
یک شنبه 13 اسفند 1391, 15:15 عصر
انجام دادم باز همین خطا رو میده

pedram.11
یک شنبه 13 اسفند 1391, 15:41 عصر
کد زیر رو امتحان کنید
string sql = string.Format("Insert BOOK (cat_id,tech_id,name,price,data) values ('{0}','{1}','{2}','{3}','{4}')",catid, techid, txtjozname.Text.Trim(),txtprice.Text.Trim(),fileDa ta);

mortezasar
یک شنبه 13 اسفند 1391, 16:10 عصر
سلام دوست عزیز امتحان کردم این خطا رو میده
Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.

pedram.11
یک شنبه 13 اسفند 1391, 16:36 عصر
شما نوعی که برای آیتم هات در دیتابیس درنظر گرفتی رو درست کنید، به نظرم مدلشونو از نوع تکست یا ممو کنی بهتر باشه چون موقع خوندن اطلاعات در آخر آبجکت بر میگردونه
برای خانایی بیشتر کوئریتون هم کد رو بصورت زیر نوشتم ایشالا مشکل حل شه
SqlCommand sc = new SqlCommand("Insert into BOOK (cat_id,tech_id,name,price,data) values (@cat_id,@tech_id,@name,@price,@data)");
sc.Parameters.AddWithValue("@cat_id", catid);
sc.Parameters.AddWithValue("@tech_id", techid);
sc.Parameters.AddWithValue("@name", txtjozname.Text.Trim());
sc.Parameters.AddWithValue("@price", txtprice.Text.Trim());
sc.Parameters.AddWithValue("@data", fileData);

mortezasar
یک شنبه 13 اسفند 1391, 17:09 عصر
دوست عزیز نوعش به ترتیب
bigint,bigint,nvarchar(50),bigint,varbinary(max)
هستش
فک نمیکنم مشکل سر نوع باشه یکجا باید یک تبدیل انجام بدم اما کجا نمیدونم ×!

mortezasar
یک شنبه 13 اسفند 1391, 17:30 عصر
سلام دوست عزیز با کد آخری مشکلم حل شد مرسی