C# 实现SQLite数据库图片读写
1、引用SQLite数据库库文件
2、编写文件读写类
//将图片数据转换为二进制流数据
private byte[] ImageToByte(Image Picture)
{
MemoryStream ms = new MemoryStream();
if (Picture == null)
return new byte[ms.Length];
Picture.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] BPicture = new byte[ms.Length];
BPicture = ms.GetBuffer();
return BPicture;
}
//上传二进制流数据到数据库
public void Updata_SQL(string FileName, byte[] picData)
{
SQLiteConnection conn = new SQLiteConnection("Data Source=D:\\ShowImage\\TestData.db; Version=3;");
string sql = "";
conn.Open();
SQLiteCommand cmd = new SQLiteCommand(sql, conn);
// 直接返这个值放到数据就行了
sql = "Update ImageTable set ImageData = @Data where ImageName = " FileName;
cmd.CommandText = sql;
cmd.Parameters.Add("@Data", DbType.Object, picData.Length);
cmd.Parameters["@Data"].Value = picData;
cmd.ExecuteNonQuery();
}
//直接上传图片 内部自动转换为二进制流数据
public void Updata_SQL(string FileName, Image Picture)
{
byte[] picData = ImageToByte(Picture);
SQLiteConnection conn = new SQLiteConnection("Data Source=D:\\ShowImage\\TestData.db; Version=3;");
string sql = "";
conn.Open();
SQLiteCommand cmd = new SQLiteCommand(sql, conn);
// 直接返这个值放到数据就行了
sql = "Update ImageTable set ImageData = @Data where ImageName = " FileName;
cmd.CommandText = sql;
cmd.Parameters.Add("@Data", DbType.Object, picData.Length);
cmd.Parameters["@Data"].Value = picData;
cmd.ExecuteNonQuery();
}
//读取数据库二进制流文件转图片
SQLiteConnection conn;
conn = new SQLiteConnection("Data Source=D:\\ShowImage\\TestData.db; Version=3;");
conn.Open();
string sql = "";
SQLiteCommand cmd = new SQLiteCommand(sql, conn);
DataSet ds = new DataSet();
sql = "select * from ImageTable";
cmd.CommandText = sql;
SQLiteDataAdapter adp = new SQLiteDataAdapter(cmd);
adp.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
conn.Close();
pictureBox1.Image = Byte_Image(ds.Tables[0].Rows[0][1]);
pictureBox2.Image = Byte_Image(ds.Tables[0].Rows[1][1]);
pictureBox3.Image = Byte_Image(ds.Tables[0].Rows[2][1]);
pictureBox4.Image = Byte_Image(ds.Tables[0].Rows[3][1]);
//二进制流转为图片方法
public Image Byte_Image(object value)
{
byte[] picData = (byte[])value;
MemoryStream ms = new MemoryStream(picData);
Image img = Image.FromStream(ms);
ms.Close();
return img;
}
//将文件读取转换为二进制流文件
public byte[] GetFileBytes(string Filename)
{
if (Filename == "")
return null;
try
{
FileStream fileStream = new FileStream(Filename, FileMode.Open, FileAccess.Read);
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] fileBytes = binaryReader.ReadBytes((int)fileStream.Length);
binaryReader.Close();
return fileBytes;
}
catch
{
return null;
}
}
3、数据库设置
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfheeia
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01