存入數(shù)據(jù)庫的代碼:
// 把圖片轉(zhuǎn)換成byte[]
MemoryStream ms=new MemoryStream();
byte[] imagedata=null;
Image.FromFile("c:\\a.gif").Save(ms,System.Drawing.Imaging.ImageFormat.Gif );
imagedata=ms.GetBuffer ();
// 生成Sql
string sql ="Insert Into 你的表名 (Image字段) values(@filedata)";
SqlParameter p=new SqlParameter("@filedata",SqlDbType.Image);
p.value=imagedata;
// 執(zhí)行Sql
private void button2_Click(object sender, System.EventArgs e)
{
try
{
System.IO.FileInfo fs = new System.IO.FileInfo(this.filename);
if (!fs.Exists)
{
MessageBox.Show("無效的文件名!");
return;
}
//創(chuàng)建一字節(jié)數(shù)組,用來存儲圖像文件.(數(shù)組的長度是圖像文件的長度)
byte[] Content=new byte[fs.Length];
//打開文件并用他初始化一個文件流對象
FileStream ImageFileStream=fs.OpenRead();
//將文件內(nèi)容寫入字節(jié)數(shù)組
ImageFileStream.Read(Content,0,Content.Length);
//關(guān)閉文件流
ImageFileStream.Close();
//創(chuàng)建一個Sql命令對象,用來插入記錄
System.Data.OleDb.OleDbCommand mycmd = new System.Data.OleDb.OleDbCommand(updatesql,DB.OleConn());
mycmd.CommandType = CommandType.StoredProcedure;
mycmd.Parameters.Add("@image",System.Data.OleDb.OleDbType.VarBinary);
mycmd.Parameters.Add("@bh",OleDbType.VarChar,20);
mycmd.Parameters["@image"].Value = Content;
mycmd.Parameters["@bh"].Value =bh;
//打開數(shù)據(jù)庫連接
if (mycmd.Connection.State!=ConnectionState.Open)
{
mycmd.Connection.Open();
}
//執(zhí)行 Sql 語句
mycmd.ExecuteNonQuery();
//關(guān)閉數(shù)據(jù)庫連接
mycmd.Connection.Close();
MessageBox.Show("圖像文件 " + fs.FullName + " 成功上傳到數(shù)據(jù)庫!");
this.filename ="";
myds.Tables[0].Clear();
myda.Fill(myds,"A");
//mybind.Position =0;
//this.Showimage();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
this.button2.Enabled = false;
}
byte[] buffer;
// 1)考試,大提示磁盤文件中加載文件
System.IO.FileStream fs = new System.IO.FileStream("文件名", System.IO.FileMode.Open);
buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
// 2)從表單讀取上傳的文件 File1 為文件上傳的 HTML 控件
System.IO.Stream stream = this.File1.PostedFile.InputStream;
buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
// 請任選以上一種獲取圖片數(shù)據(jù)
// 寫入數(shù)據(jù)庫
System.Data.OleDb.OleDbParameter parameter = new System.Data.OleDb.OleDbParameter("@Image", System.Data.OleDb.OleDbType.Binary);
parameter.Value = buffer;
string insertCommand = "INSERT [表](字段) VALUES(@Image);";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(insertCommand, conn);
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();
// 讀取圖片的代碼,我就不寫,忙沒時間。其實(shí)很簡單就是查詢一下而已。
// 讀取圖片時,從數(shù)據(jù)庫中把二進(jìn)制數(shù)據(jù)賦值到 byte[] 數(shù)組中
this.Response.ContentType = "image/JPEG"; // 設(shè)置 MIME 類型
this.Response.BinaryWrite(buffer); // 輸出二進(jìn)制數(shù)據(jù)
簡潔有效的方法:頂頂,狂頂??!
create table qqview(photo image)--建表
go
insert qqview
select * from openrowset(bulk N’d:\壁紙\10.jpg’,single_blob) a --N’d:\壁紙\1.jpg’為路徑和圖片名。
// 把圖片轉(zhuǎn)換成byte[]
MemoryStream ms=new MemoryStream();
byte[] imagedata=null;
Image.FromFile("c:\\a.gif").Save(ms,System.Drawing.Imaging.ImageFormat.Gif );
imagedata=ms.GetBuffer ();
// 生成Sql
string sql ="Insert Into 你的表名 (Image字段) values(@filedata)";
SqlParameter p=new SqlParameter("@filedata",SqlDbType.Image);
p.value=imagedata;
// 執(zhí)行Sql
private void button2_Click(object sender, System.EventArgs e)
{
try
{
System.IO.FileInfo fs = new System.IO.FileInfo(this.filename);
if (!fs.Exists)
{
MessageBox.Show("無效的文件名!");
return;
}
//創(chuàng)建一字節(jié)數(shù)組,用來存儲圖像文件.(數(shù)組的長度是圖像文件的長度)
byte[] Content=new byte[fs.Length];
//打開文件并用他初始化一個文件流對象
FileStream ImageFileStream=fs.OpenRead();
//將文件內(nèi)容寫入字節(jié)數(shù)組
ImageFileStream.Read(Content,0,Content.Length);
//關(guān)閉文件流
ImageFileStream.Close();
//創(chuàng)建一個Sql命令對象,用來插入記錄
System.Data.OleDb.OleDbCommand mycmd = new System.Data.OleDb.OleDbCommand(updatesql,DB.OleConn());
mycmd.CommandType = CommandType.StoredProcedure;
mycmd.Parameters.Add("@image",System.Data.OleDb.OleDbType.VarBinary);
mycmd.Parameters.Add("@bh",OleDbType.VarChar,20);
mycmd.Parameters["@image"].Value = Content;
mycmd.Parameters["@bh"].Value =bh;
//打開數(shù)據(jù)庫連接
if (mycmd.Connection.State!=ConnectionState.Open)
{
mycmd.Connection.Open();
}
//執(zhí)行 Sql 語句
mycmd.ExecuteNonQuery();
//關(guān)閉數(shù)據(jù)庫連接
mycmd.Connection.Close();
MessageBox.Show("圖像文件 " + fs.FullName + " 成功上傳到數(shù)據(jù)庫!");
this.filename ="";
myds.Tables[0].Clear();
myda.Fill(myds,"A");
//mybind.Position =0;
//this.Showimage();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
this.button2.Enabled = false;
}
byte[] buffer;
// 1)考試,大提示磁盤文件中加載文件
System.IO.FileStream fs = new System.IO.FileStream("文件名", System.IO.FileMode.Open);
buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
// 2)從表單讀取上傳的文件 File1 為文件上傳的 HTML 控件
System.IO.Stream stream = this.File1.PostedFile.InputStream;
buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
// 請任選以上一種獲取圖片數(shù)據(jù)
// 寫入數(shù)據(jù)庫
System.Data.OleDb.OleDbParameter parameter = new System.Data.OleDb.OleDbParameter("@Image", System.Data.OleDb.OleDbType.Binary);
parameter.Value = buffer;
string insertCommand = "INSERT [表](字段) VALUES(@Image);";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(insertCommand, conn);
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();
// 讀取圖片的代碼,我就不寫,忙沒時間。其實(shí)很簡單就是查詢一下而已。
// 讀取圖片時,從數(shù)據(jù)庫中把二進(jìn)制數(shù)據(jù)賦值到 byte[] 數(shù)組中
this.Response.ContentType = "image/JPEG"; // 設(shè)置 MIME 類型
this.Response.BinaryWrite(buffer); // 輸出二進(jìn)制數(shù)據(jù)
簡潔有效的方法:頂頂,狂頂??!
create table qqview(photo image)--建表
go
insert qqview
select * from openrowset(bulk N’d:\壁紙\10.jpg’,single_blob) a --N’d:\壁紙\1.jpg’為路徑和圖片名。