
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控件中。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)