PDA

View Full Version : ذخیره آبجکت در sql 2000



programmable
چهارشنبه 02 اردیبهشت 1388, 15:15 عصر
نحوه ذخیره آبجک در دیتابیس چطوریه؟ سریالیز در یک فایل نمیخوام بشه بلکه مستقیما تو بانک ذخیره بشه SQL server 2000

NewFoxStudent
چهارشنبه 02 اردیبهشت 1388, 15:46 عصر
منظورتون از Object چیه
ممکنه بیشتر توضیح بدید

esmaeily-hosein
چهارشنبه 02 اردیبهشت 1388, 16:14 عصر
توی db نوع فیلد Binary در نظر بگیر و بقیه ماجرا :


List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 128 };
XmlSerializer serializer = new XmlSerializer(typeof(List<int>));
using (MemoryStream mStream = new MemoryStream())
{
serializer.Serialize(mStream, list);
byte[] bytes = mStream.GetBuffer();
}

programmable
چهارشنبه 02 اردیبهشت 1388, 16:26 عصر
منظورتون از Object چیه
ممکنه بیشتر توضیح بدید
منظورم یه نمونه از یک کلاس هستش . صرفا یه کلاس نوع پایه هم نه بلکه هر کلاسی .

programmable
چهارشنبه 02 اردیبهشت 1388, 16:30 عصر
توی db نوع فیلد Binary در نظر بگیر و بقیه ماجرا :



List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 128 };

XmlSerializer serializer = new XmlSerializer(typeof(List<int>));
using (MemoryStream mStream = new MemoryStream())
{
serializer.Serialize(mStream, list);
byte[] bytes = mStream.GetBuffer();
}


ممنونم . این کد رو داشتم ولی نمیدونم چرا برای هر کلاسی نمیشه ازش استفاده کرد ؟
توی سطر

XmlSerializer serializer = new XmlSerializer(typeof(List<int>));
خطای زیر رو میده

There was an error reflecting type

esmaeily-hosein
چهارشنبه 02 اردیبهشت 1388, 16:35 عصر
توی کلاسی که من گزاشتم که میشه !
برخی از کلاس های قابلیت serialize شدن ندارند (به خاطر بحث های متفرقه ) و یا متد serialize را ننوشتند مراجعه شود به بحث Serialize در custome collection ها فکر کنم تو همون تاپیک ذخیره collection در فایل گزاشتم .

esmaeily-hosein
چهارشنبه 02 اردیبهشت 1388, 16:42 عصر
با این روش کلاس های بیشتری تحت پوشش قرار میگیرند



byte[] bytes = null;
List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 128 };

BinaryFormatter formatter = new BinaryFormatter();

//Serialize
using (MemoryStream mStream = new MemoryStream())
{
formatter.Serialize(mStream, list);
bytes = mStream.GetBuffer();
}

//Deserialize
using (MemoryStream mStream = new MemoryStream(bytes))
{
List<int> deserializeObject = formatter.Deserialize(mStream) as List<int>;
}

programmable
چهارشنبه 02 اردیبهشت 1388, 17:22 عصر
در درست بودن کد شک ندارم . فکر می کنم من در جای درستی ازش استفاده نمی کنم.

programmable
چهارشنبه 02 اردیبهشت 1388, 17:24 عصر
یه آبجکت از نوع PrintDocument دارم که میخوام اونو ذخیره کنم. شاید اصلا این راهی که انتخاب کردم اشتباهه . برای نگهداری تنظمیات چاپ چه روشی بهتره ؟(البته غیر از اینکه تک تک مقادیر شی رو جدا ذخیره کنم و بعدا ازش استفاده کنم . )

esmaeily-hosein
پنج شنبه 03 اردیبهشت 1388, 09:53 صبح
PageSettings مربوط به اونو که میشه ذخیره کرد .

programmable
پنج شنبه 03 اردیبهشت 1388, 12:06 عصر
منظورتون مقادیر اون بصورت جداگانه هست یا خود آبجکتی از نوع PageSetting . چون این آبجکت توانایی Serialize شدن رو نداره .

esmaeily-hosein
یک شنبه 06 اردیبهشت 1388, 17:05 عصر
PrintDocument pd = new PrintDocument();
System.Drawing.Printing.PageSettings setting = pd.DefaultPageSettings;



حالا میشه ذهیرش کرد .