Can I save an 'Object' in a SQL Server database?

后端 未结 5 423
傲寒
傲寒 2020-12-04 10:29

I want to save an object (of any type) into a field in a database in SQL Server 2005. Is it possible? Do I have to convert the object into something, like a byte array for e

5条回答
  •  天命终不由人
    2020-12-04 10:49

    You can use the VARBINARY(MAX) field type in SQL Server, if you like. You can store any type of object in there, up to 2 GB in size.

    To access it, you can use ADO.NET - something like this:

    object yourMysteryObject = (whatever you like it to be);
    
    MemoryStream memStream = new MemoryStream();
    StreamWriter sw = new StreamWriter(memStream);
    
    sw.Write(yourMysteryObject);
    
    SqlCommand sqlCmd = new SqlCommand("INSERT INTO TableName(VarBinaryColumn) VALUES (@VarBinary)", sqlConnection);
    
    sqlCmd.Parameters.Add("@VarBinary", SqlDbType.VarBinary, Int32.MaxValue);
    
    sqlCmd.Parameters["@VarBinary"].Value = memStream.GetBuffer();
    
    sqlCmd.ExecuteNonQuery();
    

    Marc

提交回复
热议问题