数据库如何插入byte[]

deyter 2010-10-09 05:34:49
TestTable: ID, UserName, UserPhoto
直接用:string sql=" Insert into TestTable(UserName,UserPhoto) values ('Hello', PhotoData) ";
其中:PhotoData是byte[]类型。

中断看下,PhotoData的值为Insert into TestTable(UserName,UserPhoto) values ('Hello', System.Byte[]);

这个问题如何解决
谢谢
...全文
870 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
deyter 2010-10-11
  • 打赏
  • 举报
回复
谢谢各位了啊
qiuqingpo 2010-10-10
  • 打赏
  • 举报
回复
不错.收藏
jcrensheng 2010-10-09
  • 打赏
  • 举报
回复
public void imgToDB(string sql)
{ //参数sql中要求保存的imge变量名称为@images
//调用方法如:imgToDB("update TestTable set UserPhoto=@images where ID='" + temp + "'");
FileStream fs = File.OpenRead(t_photo.Text);
byte[] imageb = new byte[fs.Length];
fs.Read(imageb, 0, imageb.Length);
fs.Close();
SqlCommand com3 = new SqlCommand (sql,con);
com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb;
if (com3.Connection.State == ConnectionState.Closed)
com3.Connection.Open();
try
{
com3.ExecuteNonQuery();
}
catch
{ }
finally
{ com3.Connection.Close(); }
}
wuyq11 2010-10-09
  • 打赏
  • 举报
回复
FileStream fs = new FileStream(@"D:\a.jpg", FileMode.Open,FileAccess.Read);
Byte[] btye2 = new byte[fs.Length];
fs.Read(btye2 , 0, Convert.ToInt32(fs.Length));
fs.Close();
using (SqlConnection conn = new SqlConnection(sqlconnstr))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "insert into Photo(imgfile) values(@imgfile)";
SqlParameter par = new SqlParameter("@imgfile", SqlDbType.Image);
par.Value = bt;
cmd.Parameters.Add(par);
int t=(int)(cmd.ExecuteNonQuery());
conn.Close();
}
-小蕾- 2010-10-09
  • 打赏
  • 举报
回复
把参数PhotoData类型转换一下。当作参数传进去。
mywatermelon 2010-10-09
  • 打赏
  • 举报
回复
SQL的话……数据库的数据类型选择varbinary(MAX)……希望能够帮到楼主……
让爱延续 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 symbol_bc 的回复:]
C# code

SqlConnection cn = new SqlConnection(strCn);
SqlCommand cmd = new SqlCommand("INSERT INTO BLOBTest (BLOBData) VALUES (@BLOBData)", cn);
MemoryStream ms ……
[/Quote]
[Quote=引用 4 楼 flyerwing 的回复:]
参数化执行语句就好了!
[/Quote]
flyerwing 2010-10-09
  • 打赏
  • 举报
回复
参数化执行语句就好了!
symbol_bc 2010-10-09
  • 打赏
  • 举报
回复

SqlConnection cn = new SqlConnection(strCn);
SqlCommand cmd = new SqlCommand("INSERT INTO BLOBTest (BLOBData) VALUES (@BLOBData)", cn);
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms,ImageFormat.Jpeg);
Byte[] bytBLOBData = new Byte[ms.Length];
ms.Position = 0;
ms.Read(bytBLOBData, 0, Convert.ToInt32(ms.Length));
SqlParameter prm = new SqlParameter("@BLOBData", SqlDbType.VarBinary, bytBLOBData.Length, ParameterDirection.Input, false, 0, 0,null, DataRowVersion.Current, bytBLOBData);
cmd.Parameters.Add(prm);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();

xiaotiange 2010-10-09
  • 打赏
  • 举报
回复
把photodata转换成 字符串
于2024年4月-2025年9月期间,研究团队在贵州习水国家级自然保护区制定39条样线,涵盖灌木林、常绿阔叶林、针叶林、常绿落叶阔叶混交林、针阔混交林等不同植被类型,每条样线分春夏秋冬4个季节采集样品,用真菌采集软件记录经纬度、海拔、采集地点、时间、生境等信息,使用佳能相机(R6 mark Ⅱ)对大型真菌进行拍照,并采集标本,标本存放于贵州省生物研究所大型真菌标本馆(HGAMF)。 通过形态学初步鉴定,结合分子生物学最终鉴定,参考已]报道的中国毒蘑菇名录开展毒蘑菇的认定。 调查到保护区内有毒真菌7目25科64种,导致中毒的主要类型有急性肾衰竭型、神经精神型和胃肠炎型。最终形成贵州习水国家级自然保护区大型有毒真菌图片数据集,它由以下2个部分组成。 (1)附件1包含78张原始照片(.JPG),照片名字包括了大型有毒真菌的拉丁名和中文名,若无中文名的直接用拉丁名。 (2)附件2是一个压缩文件,包含了2张工作表,其中一张表是大型有毒真菌39条样线的信息,另一张表是大型有毒真菌的中毒类型。 照片采用佳能相机R6 mark Ⅱ拍摄,物种鉴定通过多种文献核实,并经两位以上专家鉴定确认。该数据集可为研究地及周边的普通人识别有毒大型真菌提供参考,通过及时的图片对比,能有效避免误采误食大型有毒真菌,同时为因误食大型真菌可能引发的身体损伤进行了总结,能为患者及时治疗提供参考。

111,132

社区成员

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

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

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