
什么数据库都无所谓了,就看你想怎么存呗。如果牵涉到网路传输你可以用base64将处理为字符串,数据库对应字段为text这样占空间较大。如果直接本地程序读库后转成,那就直接2进制格式就行。关于解决数据库连接打开,你可以写一个动态页面,然后给它传一个记录的标识(比如说ID)这个页面通过标识查库然后转成显示就行。当然也可以用ftp来实现,数据库中只需要存路径。
SqlServer数据库。SqlServer有Image字段类型,最大可以存储2G的数据例byte[] fileData = thisFileUpload1FileBytes;
string sql = "insert into t_img(img) values (@img)";
string strconn = SystemConfigurationConfigurationManagerConnectionStrings["fengdongDB"]ToString();
SqlConnection sqlConn = new SqlConnection(strconn);
SqlCommand sqlComm = new SqlCommand(sql, sqlConn);
sqlCommParametersAdd("@img", SqlDbTypeImage);//添加参数
sqlCommParameters["@img"]Value = fileData;//为参数赋值
sqlConnOpen();
sqlCommExecuteNonQuery();
sqlConnClose();
2Oracle数据库。在Oracle数据库中我们可以使用BLOB字段类型,最大可以存储4G的数据。 例
byte[] fileData = thisFileUpload1FileBytes;
string sql = "insert into t_img(imgid,IMGDATA) values(100,:IMGDATA)";
string strconn = SystemConfigurationConfigurationManagerConnectionStrings["ConnectionStringForOracle"]ToString();
OracleConnection oraConn = new OracleConnection(strconn);
OracleCommand oraComm = new OracleCommand(sql, oraConn);
oraCommParametersAdd(":IMGDATA", OracleTypeBlob);//添加参数
oraCommParameters[":IMGDATA"]Value = fileData;//为参数赋值
oraConnOpen();
oraCommExecuteNonQuery();
oraConnClose(); 3Access数据库。在Access中我们使用OLE对象字段类型,最大支持1G的数据。 例
byte[] fileData = thisFileUpload1FileBytes;
string sql = "insert into t_img(IMGDATA) values()";
string strconn = SystemConfigurationConfigurationManagerConnectionStrings["ConnectionStringForAccess"]ToString();
OleDbConnection oleConn = new OleDbConnection(strconn);
OleDbCommand oleComm = new OleDbCommand(sql, oleConn);
oleCommParametersAdd("imgdata", OleDbTypeBinary);
oleCommParameters["imgdata"]Value = fileData;
oleConnOpen();
oleCommExecuteNonQuery();
oleConnClose();
给你提供个ACCESS版的VB代码,使用时调用这些过程即可:
'使用ADODBStream来保存/读取图像文件到数据库
'引用Microsoft ActiveX Data Objects 25 Library及以上版本
'保存文件到数据库中
Sub SaveFile()
Dim Stm As New ADODBStream
Dim Cnn As New ADODBConnection
Dim rs As New ADODBRecordset
Dim strCnn As String
strCnn = "Provider=MicrosoftJetOLEDB40;Persist Security Info=False;Data Source=" & _
AppPath & "\DB1mdb"
CnnOpen strCnn
'读取文件到内存(二进制模式)
With Stm
Type = adTypeBinary
Open
LoadFromFile AppPath + "\Image1bmp"
End With
With rs
Open "SELECT FROM TABLE1", Cnn, 1, 3
AddNew
Fields("IMAGE") = StmRead
Update
End With
rsClose
StmClose
Set rs = Nothing
Set Cnn = Nothing
Set Stm = Nothing
End Sub
'从数据库中读取图像文件
Sub ReadFile()
Dim Stm As New ADODBStream
Dim Cnn As New ADODBConnection
Dim rs As New ADODBRecordset
Dim strCnn As String
strCnn = "Provider=MicrosoftJetOLEDB40;Persist Security Info=False;Data Source=" & _
AppPath & "\DB1mdb"
CnnOpen strCnn
rsOpen "SELECT IMAGE FROM TABLE1 WHERE ID = 18", Cnn, adOpenKeyset, adLockReadOnly
'保存到文件
With Stm
Mode = adModeReadWrite
Type = adTypeBinary
Open
Write rs("IMAGE")
SaveToFile AppPath + "\Image2bmp"
End With
'显示
Picture1Picture = LoadPicture(AppPath + "\Image2bmp")
rsClose
StmClose
Set rs = Nothing
Set Cnn = Nothing
Set Stm = Nothing
End Sub
以上就是关于如何制作图片数据库全部的内容,包括:如何制作图片数据库、怎样把图片插入数据库、如何才能往数据库里读取图片数据或者从数据库里读图片等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)