我在做一个OpenFileDialog得图片存取我把图片装换成了二进制数据库字段是image,去出来装换成流用pictureBox输出却是无效参数.. 求解
string fName;OpenFileDialog openFileDialog = new OpenFileDialog();//实例化
openFileDialog.InitialDirectory = "e:\\141\\";//打开的默认路径
openFileDialog.Filter = "图像文件 (*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG";
openFileDialog.RestoreDirectory = true;
openFileDialog.FilterIndex = 1;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
fName = openFileDialog.FileName;
textBox1.Text = File.ReadAllText(fName);
FileStream fs = new FileStream(fName, FileMode.Open);
byte[] imgbt = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imgbt = br.ReadBytes(Convert.ToInt32(fs.Length));
string sql_class = "insert into ImageTiale(CreateDate,CreateUser,ID,images) values('" + DAL.baseDal.Time() + "','" + DAL.ClsCurrentUserInfo.UserID + "','" + Guid.NewGuid() + "','" + imgbt + "')";
DAL.SqlHelper.ExecuteDataset(DAL.SqlHelper.conn, CommandType.Text, sql_class);
DataTable dr = BLL.Factory.MadeFactory<ImageTiale>("ImageTiale").getAll();
if (dr.Rows[0]["images"] != DBNull.Value)
{
MemoryStream ms = new MemoryStream((byte[])imgbt);//把照片读到MemoryStream里
Image imageBlob = Image.FromStream(ms, true);//用流创建Image
pictureBox1.Image = imageBlob;//输出图片
}
else//照片字段里没值,清空pb
{
pictureBox1.Image = null;
}
}
我在做一个OpenFileDialog得图片存取我把图片装换成了二进制数据库字段是image,去出来装换成流用pictureBox输出却是无效参数.. 求解,以上是我代码 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- string sql_class = "insert into ImageTiale(CreateDate,CreateUser,ID,images) values('" + DAL.baseDal.Time() + "','" + DAL.ClsCurrentUserInfo.UserID + "','" + Guid.NewGuid() + "','" + imgbt + "')";
图片不能这样向数据库中插入的 --------------------编程问答-------------------- 那应该怎么插入?难怪我插入读出来以后 维数少了很多. --------------------编程问答-------------------- 二进制流的话,还是要用SQLParameter传入。 --------------------编程问答-------------------- SqlParameter sp = new SqlParameter("@name", buffen);
string sql_class = "insert into ImageTiale(CreateDate,CreateUser,ID,images) values('" + DAL.baseDal.Time() + "','" + DAL.ClsCurrentUserInfo.UserID + "','" + Guid.NewGuid() + "','" + sp + "')";
DAL.SqlHelper.ExecuteDataset(DAL.SqlHelper.conn, CommandType.Text, sql_class);
byte[] MyData = new byte[0];
DataTable dr = BLL.Factory.MadeFactory<ImageTiale>("ImageTiale").getAll();
MyData = (byte[])dr.Rows[0]["Images"];//读取图片的位流
MemoryStream mystream = new MemoryStream(MyData);
pictureBox1.Image = Image.FromStream(mystream);//在控件中显示
我是这样插入,还是参数无效啊, 大哥,可以具体些吗?
补充:.NET技术 , C#