مجيد اطلس باف

Majid Atlasbaf
91 - پیام , 188 - نظر

پیوندهای اصلی

اخبار


Page Rank Tool

بایگانی پیامها

بایگانی سال ۱۳۸۸

فروردین ۱۳۸۸، (۱)

بایگانی سال ۱۳۸۷

دی ۱۳۸۷، (۱)
آذر ۱۳۸۷، (۱)
آبان ۱۳۸۷، (۱)
مهر ۱۳۸۷، (۱)
شهریور ۱۳۸۷، (۱)
مرداد ۱۳۸۷، (۱)
تیر ۱۳۸۷، (۱)
خرداد ۱۳۸۷، (۱)
اردیبهشت ۱۳۸۷، (۱)
فروردین ۱۳۸۷، (۱)

بایگانی سال ۱۳۸۶

اسفند ۱۳۸۶، (۱)
بهمن ۱۳۸۶، (۳)
آذر ۱۳۸۶، (۱)
آبان ۱۳۸۶، (۱)
مهر ۱۳۸۶، (۱)
شهریور ۱۳۸۶، (۱)
مرداد ۱۳۸۶، (۲)
خرداد ۱۳۸۶، (۱)
اردیبهشت ۱۳۸۶، (۱)
فروردین ۱۳۸۶، (۲)

بایگانی سال ۱۳۸۵

اسفند ۱۳۸۵، (۱)
دی ۱۳۸۵، (۱)
آبان ۱۳۸۵، (۲)
مهر ۱۳۸۵، (۲)
شهریور ۱۳۸۵، (۳)
مرداد ۱۳۸۵، (۱)
تیر ۱۳۸۵، (۴)
خرداد ۱۳۸۵، (۱)
اردیبهشت ۱۳۸۵، (۵)
فروردین ۱۳۸۵، (۲)

بایگانی سال ۱۳۸۴

اسفند ۱۳۸۴، (۱)
دی ۱۳۸۴، (۳)
آذر ۱۳۸۴، (۵)
آبان ۱۳۸۴، (۲)
مهر ۱۳۸۴، (۷)
شهریور ۱۳۸۴، (۴)
مرداد ۱۳۸۴، (۳)
خرداد ۱۳۸۴، (۳)
اردیبهشت ۱۳۸۴، (۳)
فروردین ۱۳۸۴، (۵)

بایگانی سال ۱۳۸۳

اسفند ۱۳۸۳، (۴)
بهمن ۱۳۸۳، (۴)

دسته بندی پیامها

(rss) مطالب مرتبط با NET.
(rss) مطالب مرتبط با SQL
(rss) مطالب مرتبط با UNIX

گالری عکسها

عکسهای مقالات

سایت های مرتبط

Persian Websites Directory
DSP algorithms development

همکاران

حمیدرضا طاهریان
شیما دهباشی
فاطمه طاهریان
محسن طاهریان

How to store an object in sql server?

Sometimes it's necessary to store desired objects in database and retrieve them when necessary. You can store objects in sql server in binary, varbinary or image columns. the difference between these types is related to their size.

In order to store an object in database, it's necessary to serialize the object. Serialization makes it possible to treat an object such as an array of bytes, so you can store this array in a blob field in database and then restore them and convert this array to your desired object.

You can serialize an object in C# via BinaryFormatter class. Suppose you want to store an object of the following type in the database:

[Serializable]
public struct MyStruct
{
    public int ID;
    public object Blob;
}

First this type should be defined as a Serializable. Then you need two methods to serialize and deserialize objects of this type as follows:

private byte[] SerializeObject(object obj)
{
    MemoryStream ms = new MemoryStream();
    BinaryFormatter bf = new BinaryFormatter();
    bf.Serialize(ms, obj);
    ms.Seek(0, SeekOrigin.Begin);
    return ms.ToArray();
}

private object DeserializeObject(byte[] buffer)
{
    MemoryStream ms = new MemoryStream();
    ms.Write(buffer, 0, buffer.Length);
    ms.Seek(0, SeekOrigin.Begin);

    BinaryFormatter bf = new BinaryFormatter();
    return bf.Deserialize(ms);
}

Now you can store this object in database as follows:

public void Save(int ID, object Blob) {
    ...
    SqlCommand sqlCmd=new SqlCommand("INSERT INTO MyTable(ID, Blob) VALUES (@ID, @Blob)", sqlCn);
    paramID = new SqlParameter("@ID", SqlDbType.Int);
    paramID .Value = ID;
    paramBlob = new SqlParameter("@Blob", SqlDbType.Image);
    paramBlob.Value = SerializeObject(blob);
    sqlCmd.Parameters.Add(paramID);
    sqlCmd.Parameters.Add(paramBlob);
    sqlCmd.ExecuteNonQuery();
}

And you can retrieve this object as follows:

public MyStruct Load(int ID) {
    ...
    MyStruct test = new MyStruct();
    // Load from database and store in a DataTable dt.
    test.ID = Convert.ToInt32(dt.Rows[0]["ID"]);
    test.Blob = DeserializeObject((byte[])dt.Rows[0]["Blob"]);
}

For more information about this subject visit the following pages:

ارسال شده در تاریخ ۱ مهر ۱۳۸۵ - 9:23 صبح

نظرات

هنوز هیچ نظری ارسال نشده است

ارسال نظرات

عنوان:  
نام:  
آدرس الکترونیکی:
زبان:
توضیح:  
لطفا متن مقابل را در زیر وارد کنید
(کوچک یا بزرگ بودن حروف مهم نیست)