SQL数据库用甚么字段存储图片路径

SQL数据库用甚么字段存储图片路径,第1张

当然是用VARCHAR来作为存储路径的字段类型咯,大小应该设为

255

char是字符型的,要自己指定大小

text是用来存放文本的,大小由系统指定为16,但是文本实际上不是

存储在表中,而是存在系统分配的页中,这些用户不用管

百度上找到的资料

两种,一种是将图片转化成二进制数据流存入数据库中。一种是保存图片的路径,然后前台读取路径去调用图片。相关的代码百度一下应该会有,第二种方法实现上比较简单,就是存储路径,然后根据路径读取对应的图片显示出来。第一种就比较麻烦,要先把图片转化成二进制数据,读取时就是从数据库读取对应数据再转化成图片显示出来。

2种方法1:把图片放在网站目录下的文件夹中,将图片的虚拟路径写到数据库中对应数据表的字段下。2:把图片文件转换成二进制数据写到数据库中,不过 *** 作有些麻烦。(C#代码)数据表{PictureID int indetity(1,1),PictureData varbinary(MAX)}保存图像byte[] picData = FileUpload1.FileBytes//获取上传控件中图片二进制数据picID = AddPicture(FileUpload1.FileName.ToString(), picData)//保存图像二进制数据到数据库 SqlDataReader sdr = GetPicture(picID)//读取刚才保存的图像

byte[] picData = null

while (sdr.Read())

{

picData = (byte[])sdr["PictureData"]

}

sdr.Close()

System.IO.MemoryStream ms = new System.IO.MemoryStream(picData)

System.Drawing.Image img = System.Drawing.Image.FromStream(ms)

img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)上面用到的保存和读取的函数(使用存储过程,把存储过程名车鞥换成SQL语句一样的效果) public int AddPicture(string picDesn, byte[] picData)

{

DB db = new DB()//建立数据库连接

SqlParameter[] parms = { new SqlParameter("@PictureData", SqlDbType.VarBinary),

new SqlParameter("@PictureID", SqlDbType.Int,4)}

parms[0].Value = picData

parms[1].Direction = ParameterDirection.Output

if (db.ExecuteNonQuery(CommandType.StoredProcedure, "Picture_ADD", parms) >0)//添加 *** 作

{

return (int)parms[1].Value

}

return 0

}

public SqlDataReader GetPicture(int picID)

{

DB db = new DB()//建立数据库连接SqlParameter[] parms = { new SqlParameter("@PictureID", SqlDbType.Int,4)}

parms[0].Value = picID SqlDataReader sdr = db.ExecuteReader(CommandType.StoredProcedure, "Picture_GetModel", parms)//读取图像二进制数据

return sdr

} 补充:获取图像数据最好单独写在一个页面里,通过传递参数的方式获取图像并显示在Html控件中。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6704456.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存