.net如何用二进制形式保存文件数据到数据库中?
------解决方案--------------------------------------------------------
以下是将图片转化成二进制,其他的应该很好实现的,你参考一下
{
byte[] BlobData = null;
Bitmap picture;
FileStream stream;
stream = new FileStream(strFileName, FileMode.Open, FileAccess.Read);
BlobData = new byte[stream.Length];
stream.Read(BlobData, 0, (int)stream.Length);
picture = new Bitmap(stream);
stream.Close();
return BlobData;
}
------解决方案--------------------------------------------------------
用2进制流
------解决方案--------------------------------------------------------
字段定义为image类型,读取二进制文件到数据库中,则是byte[],直接赋值存储就可以了
------解决方案--------------------------------------------------------
- C# code
Dim intImageSize As Int64 Dim strImageType As String Dim ImageStream As Stream ' Gets the Size of the Image intImageSize = PersonImage.PostedFile.ContentLength ' Gets the Image Type strImageType = PersonImage.PostedFile.ContentType ' Reads the Image ImageStream = PersonImage.PostedFile.InputStream Dim ImageContent(intImageSize) As Byte Dim intStatus As Integer intStatus = ImageStream.Read(ImageContent, 0, intImageSize) ' Create Instance of Connection and Command Object Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString")) Dim myCommand As New SqlCommand("sp_person_isp", myConnection) ' Mark the Command as a SPROC myCommand.CommandType = CommandType.StoredProcedure ' Add Parameters to SPROC Dim prmPersonImage As New SqlParameter("@PersonImage", SqlDbType.Image) prmPersonImage.Value = ImageContent myCommand.Parameters.Add(prmPersonImage) Dim prmPersonImageType As New SqlParameter("@PersonImageType", SqlDbType.VarChar, 255) prmPersonImageType.Value = strImageType myCommand.Parameters.Add(prmPersonImageType) Try myConnection.Open() myCommand.ExecuteNonQuery() myConnection.Close() Response.Write("New person successfully added!") Catch SQLexc As SqlException Response.Write("Insert Failed. Error Details are: " & SQLexc.ToString()) End Try