请教SQLite数据库读写BLOB字段。

dangdang2471 2011-11-23 04:40:40
假设表如下,现需要将照片d:\1.jpg添加到库中,请问该如何做?
CREATE TABLE test(username varchar(20),password varchar(20), img blob)

最好给出详细的代码。
谢谢大家!
...全文
2145 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2011-11-24
  • 打赏
  • 举报
回复
SQLite没用过,需要使用参数化方式:给你一个例子:

FileStream fs = new FileStream(@"c:\test.jpg", FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);

img = Image.FromFile(@"c:\test.jpg");
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

byte[] myData = ms.ToArray();

SqlConnection cn = new SqlConnection("Data Source=(local);Initial Catalog=utscadadb;Integrated Security=SSPI; User Id=sa;Password=ut2001;");
SqlCommand cmd = new SqlCommand("Update Table1 Set data = (@data) where id =3", cn);
cmd.Parameters.Add("@file ", SqlDbType.VarChar).Value = "d:\\test.jpg";
cmd.Parameters.Add("@data ", SqlDbType.Image).Value = myData;

cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
dangdang2471 2011-11-24
  • 打赏
  • 举报
回复
问题已解决,多谢!

// 连接字符串 data source=d:\test.db3;password=1234
SQLiteConnectionStringBuilder connStr = new SQLiteConnectionStringBuilder();
connStr.DataSource = @"d:\test.db3";
connStr.Password = "1234";
conn = new SQLiteConnection(connStr.ToString());
conn.Open();

// 插入数据
string SQL = "INSERT INTO test(k) VALUES(:k)";
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = SQL;

// 取图标,准备插入到数据库BLOB字段
FileStream picStream = File.OpenRead(@"d:\1.bmp");
byte[] bArray = new byte[picStream.Length];
picStream.Read(bArray, 0, bArray.Length);
picStream.Close();

cmd.Parameters.Add("k", DbType.Binary).Value = bArray; // BLOB
cmd.ExecuteNonQuery();

//取出数据
cmd.CommandText = "SELECT k FROM test";
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MemoryStream streamImage = new MemoryStream(reader["k"] as byte[]);
pictureBox1.Image = Image.FromStream(streamImage);
streamImage.Close(); // 关闭流
}
reader.close();

conn.close();
dangdang2471 2011-11-23
  • 打赏
  • 举报
回复
补充:照片大小大于8KB

111,116

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧