如何用C#语句向SQL的表里插入图片 软件:VS2008、SQL Server 2005C#的编写的窗体,需要显示数据库里的一个表格,这个已经可以做到。表格里面有一列的数据类型是picture,我想插入小图标。本人还是菜鸟,希望大家帮帮我! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在数据库中定义图片类型未string型的,把你要插入的图片路劲插入数据库中,,只要路劲没错,在页面绑定就可以出来 一般先将图片转成byte[],再将byte[]做参数,Sql语句也要写成参数形式的,插入数据库读取的时候相反,先读取出byte[],再根据此byte[]构建一个Image private byte[] Ime2byte(string filePath) { if (File.Exists(filePath)) { FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); byte[] byteImage = new byte[fileStream.Length]; fileStream.Read(byteImage, 0, (int)fileStream.Length); return byteImage; } else { return null; } }把这个 byteImage这个存入数据库就可以了 http://topic.csdn.net/u/20101229/20/cdc22e1d-975b-4f88-a6bf-fbad31e0e3da.html 这是插入access的例子。你改改可以用到sql中。OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db.mdb"); cn.Open(); OleDbCommand cmd = new OleDbCommand("insert into product (p_name,p_hid,p_pic,p_bz,p_pice,l_id) values ('测试','001',@i,'001','12','" + inc + "')", cn); byte[] ib = new Byte[6000000]; FileStream fs = new FileStream(nowload, FileMode.Open, FileAccess.Read); fs.Read(ib, 0, 6000000); cmd.Parameters.Add("@i", OleDbType.Binary, (int)fs.Length); cmd.Parameters["@i"].Value = ib; cmd.ExecuteNonQuery(); cn.Close(); C# TCP/IP协议问题 VS2008内置的数据库 C# Datetime类型,如何只比较时间 怎样对俩个表中相关联的项操作? 求救。启动后看不到窗体。 在dll中如何获取当前dll的所在文件夹? 在WEB FORM 中用什么确定我在DATAGRID中选取的是那一行呢? 求指教,Winfrom中是否有那种窗体模版? 如何让一个label显示一段文字,过3秒消失? 初学c#的问题! 数据库没有有效所有者 c#中没有指针吗?如果没有,什么取代了指针?
读取的时候相反,先读取出byte[],再根据此byte[]构建一个Image
{
if (File.Exists(filePath))
{
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
byte[] byteImage = new byte[fileStream.Length];
fileStream.Read(byteImage, 0, (int)fileStream.Length);
return byteImage;
}
else
{ return null; }
}把这个 byteImage这个存入数据库就可以了
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db.mdb");
cn.Open();
OleDbCommand cmd = new OleDbCommand("insert into product (p_name,p_hid,p_pic,p_bz,p_pice,l_id) values ('测试','001',@i,'001','12','" + inc + "')", cn);
byte[] ib = new Byte[6000000];
FileStream fs = new FileStream(nowload, FileMode.Open, FileAccess.Read);
fs.Read(ib, 0, 6000000);
cmd.Parameters.Add("@i", OleDbType.Binary, (int)fs.Length);
cmd.Parameters["@i"].Value = ib;
cmd.ExecuteNonQuery();
cn.Close();