如何在SQL Server数据库表中放入图片?

如题。

图片就是二进制数据。
在数据库中创建一个Image类型的字段(二进制)

把图片文件的内容读到字节数组中,然后把字节数组保存到Image字段里。
从Image字段里读取出二进制数据,保存到一个字节数组中,然后写到文件或者流里再显示出来。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-06
数据库表中存储图片的格式一般为image,将图片转换成二进制流格式保存到数据库中.
存储步骤:
  1、搜索到图片的路径
  2、读取图片并将图片转换成二进制流格式
  3、sql语句保存到数据库中。

private void btnWrite_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";

if (ofd.ShowDialog() == DialogResult.OK)
{
string filePath = ofd.FileName;//图片路径
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] imageBytes = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imageBytes = br.ReadBytes(Convert.ToInt32(fs.Length));//图片转换成二进制流

string strSql = string.Format("insert into [SBS].[dbo].[Model] ([M_QRCode],[M_Skills] ) values (@image,'2')");
int count = Write(strSql,imageBytes );

if (count > 0)
{
MessageBox.Show("success");
}
else
{
MessageBox.Show("failed");
}
}
}

 数据库连接和保存图片语句:
private int Write(string strSql,byte[] imageBytes)
{
string connStr = "Data Source=.;initial Catalog=Imgdb;User ID=sa;Password=sa;";

using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(strSql, conn))
{
try
{
conn.Open();
SqlParameter sqlParameter = new SqlParameter("@image", SqlDbType.Image);
sqlParameter.Value = imageBytes;
cmd.Parameters.Add(sqlParameter);
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (Exception e)
{
throw;
}
}
}
}
第2个回答  2013-04-10
可以在网上搜一下,相关原代码很多.
第3个回答  2013-04-10
好像只能存放图片的路径来达到存放图片的目的!
相似回答