SQL Server2005里字段设置了图片格式 ,怎么才能插入图片,求详细的方法和步凑 3Q 20
3个回答
展开全部
SQL Server2005里字段设置了图片格式 ,不代表就完成了图片插入步骤。
要插入图片,得有好多步骤的,其中编写代码就是步骤之一。
编程主要是做文件格式的转换工作,即把图片格式变成数据库的二进制流格式。
从理论上,SQL Server2005的客户端是可以提供这样的工具,但是实际上,由于这个工具本身太复杂,而学的人又少,实际使用的也几乎没有,所以就变成了二次开发来实现了。
从你的情况看,其实你并不需要把图片插入SQL Server2005,是你不懂编程的一种误解。
要插入图片,得有好多步骤的,其中编写代码就是步骤之一。
编程主要是做文件格式的转换工作,即把图片格式变成数据库的二进制流格式。
从理论上,SQL Server2005的客户端是可以提供这样的工具,但是实际上,由于这个工具本身太复杂,而学的人又少,实际使用的也几乎没有,所以就变成了二次开发来实现了。
从你的情况看,其实你并不需要把图片插入SQL Server2005,是你不懂编程的一种误解。
追问
谢谢你的回答
展开全部
public void inpic(string str, Image img, Stream m)//存图片
{
Stream ms = m;
byte[] picbyte=new byte[ms.Length];
ms.Position = 0;
ms.Read(picbyte, 0, Convert.ToInt32(ms.Length));
conn.Open();
SqlCommand comm = new SqlCommand(str, conn);
comm.Parameters.Add(new SqlParameter("@img", SqlDbType.VarBinary));
comm.Parameters["@img"].Value = picbyte;
comm.ExecuteNonQuery();
conn.Close();
ms.Close();
}
public Image outpic(string str,string str1)//取图片
{
conn.Open();
SqlCommand comm = new SqlCommand(str, conn);
SqlDataReader sdr = comm.ExecuteReader();
try
{
sdr.Read();
MemoryStream ms = new MemoryStream((byte[])sdr[str1]);
Image img = Image.FromStream(ms, true);
sdr.Close();
conn.Close();
return img;
}
catch
{
sdr.Close();
conn.Close();
return null;
}
}
{
Stream ms = m;
byte[] picbyte=new byte[ms.Length];
ms.Position = 0;
ms.Read(picbyte, 0, Convert.ToInt32(ms.Length));
conn.Open();
SqlCommand comm = new SqlCommand(str, conn);
comm.Parameters.Add(new SqlParameter("@img", SqlDbType.VarBinary));
comm.Parameters["@img"].Value = picbyte;
comm.ExecuteNonQuery();
conn.Close();
ms.Close();
}
public Image outpic(string str,string str1)//取图片
{
conn.Open();
SqlCommand comm = new SqlCommand(str, conn);
SqlDataReader sdr = comm.ExecuteReader();
try
{
sdr.Read();
MemoryStream ms = new MemoryStream((byte[])sdr[str1]);
Image img = Image.FromStream(ms, true);
sdr.Close();
conn.Close();
return img;
}
catch
{
sdr.Close();
conn.Close();
return null;
}
}
追问
为何一定要要用代码啊,数据库里不是有个数据类型是image类型的吗,怎么不能在数据库里插入图片地址啊
追答
可以插入图片地址呀,你的意思是插入图片地址,把图片放到硬盘里?这样是可以的,但你要在取数据的时候把它转换为image类型。好像是PictuareBox.Image=Image.fromFile(path);path就是从你数据库里取出来的图片路径数据
数据库里的image类型是存储的二进制流,存储的是图片或者其他文档的二进制流,而你要存图片地址,就用普通的就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要在网上搜代码哈。必须通过程序以二进制文件添加,直接添加是不方便的。
追问
不知道从何下手
追答
你是直接使用数据库,还是在程序开发时需要。网上有代码的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询