NET 下数据库图片的存入与读取
據庫結構
create table test
{
id int identity(1,1),
FImage image
}
相關的存儲過程
Create proc UpdateImage (@UpdateImage Image)
As
Insert Into test (FImage) values (@UpdateImage)
GO
OpenFileDialog openfileDialog = new OpenFileDialog();
openfileDialog.Filter = "Picture Files(*.jpg)|*.jpg|Bmp(*.bmp)|*.bmp|All Files(*.*)|*.*";
FileStream fileStream;
openfileDialog.ShowDialog();
string filepath = openfileDialog.FileName;
if (filepath.Trim() != "")
{
//獲得圖象并把圖象轉換為byte[]
fileStream = new FileStream(filepath, FileMode.Open, FileAccess.Read);
byte[] photoArray = new byte[(int)fileStream.Length];
fileStream.Read(photoArray, 0, photoArray.Length);
fileStream.Close();
try
{
???? pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
???? pictureBox1.Image = System.Drawing.Image.FromFile(filepath);
}
catch (Exception ex)
{
???? MessageBox.Show(ex.Message);
}
//連接數據庫
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString ="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
SqlCommand mySqlCommand = new SqlCommand("UpdateImage", myConnection);
mySqlCommand.CommandType = CommandType.StoredProcedure;
mySqlCommand.Parameters.Add("@UpdateImage", SqlDbType.Image);
mySqlCommand.Parameters["@UpdateImage"].Value = photoArray;
//如果不使用存儲過程,可以把上面四句代碼改為:
//string strSql="Insert into test(FImage) values(@FImage)";
//SqlCommand cmd=new SqlCommand(strSql,conn);
//cmd.Parameters.Add("@FImage",SqlDbType.Image);
//cmd.Parameters["@FImage"].Value=photoArray;
myConnection.Open();
mySqlCommand.ExecuteNonQuery();
myConnection.Close();
}
//以下是從數據庫讀取圖片
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
string strSql = "select FImage from test where id=1";
SqlCommand cmd = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
MemoryStream ms = new MemoryStream((byte[])reader["FImage"]);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
reader.Close();
conn.Close();
pictureBox1.Image = image;
轉載于:https://www.cnblogs.com/qinhaijun/archive/2011/08/26/2154415.html
總結
以上是生活随笔為你收集整理的NET 下数据库图片的存入与读取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 性能计时器监测服务器性能瓶颈
- 下一篇: ios初学笔记