SQL上传下载图片:
从数据库下载图片
private Image QueryImage()
{
string sqlcmd = "SELECT *FROM [OpticalBox].[dbo].[testimage] WHERE id='3'";
string constr = "server=;database=;User ID=;Password=";
SqlConnection conn = new SqlConnection(constr);
conn.Open();
SqlCommand comm = new SqlCommand(sqlcmd, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
DataSet ds = new DataSet();
da.Fill(ds);
//把image类型的数据转成bytearray
byte[] image = (byte[])ds.Tables[0].Rows[0][1];
if (image.Length <= 0)
return null;
//舍弃数组前面八个字节,复制到新数组
//byte[] image1 = image.Skip(8).Take(image.Length).ToArray();
MemoryStream ms = new MemoryStream((byte[])ds.Tables[0].Rows[0][1]);
Image img = Image.FromStream(ms);
return img;
}
上传本地图片到数据库
///图片路径 filepath
private void InsertImage(string filepath)
{
//创建文件流,加载图片。
FileStream file = new FileStream(filepath, FileMode.Open);
int streamLength = (int)file.Length;
byte[] image = new byte[streamLength];//声明字节数组,保存图片文件
file.Read(image, 0, streamLength); //把图片文件转换成字节数组保存
file.Close();
SqlConnection con = new SqlConnection();
string sqlText = "server=;database=;User ID=;Password=";
con.ConnectionString = sqlText;
con.Open();
SqlCommand cmd = new SqlCommand("insert into [OpticalBox].[dbo].[testimage] ([image]) values( @image ) ;", con);
cmd.Parameters.Add("@image", SqlDbType.Image);
cmd.Parameters["@image"].Value = image;
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
}