运行的时候出现这样的提示:String的SourceColumn“图片”和Byte[]的DataColumn的“图片”之间无法转换的类型不匹配。什么意思? Byte[] 的DataColumn的类型不知道在哪呢。
什么意思,没看懂.
网络真是麻烦.
//将图片以image类型保存到数据库中(已通过编译)
//向数据库中存入图片数据
//参数strPicPath是存放图片的路径(可以用OpenFileDialog来获得)
protected void SavePic(string strPicPath)
{
//将图片转换成byte[]数组
FileStream fs=new FileStream(strPicPath,FileMode.Open,FileAccess.Read);
long lImageLen=fs.Length;
byte[] inImage=new byte[(int)lImageLen];
fs.Read(inImage,0,(int)lImageLen);
//连接数据库的字符串
string strCon="Data Source=.;Initial Catalog=数据库名;Integreated Security=SSPI";
SqlConnection con=new SqlConnection(strCon);
con.Open();
//插入图片的语句
string strInsert="Insert Into t_Pic Values (@image)";
SqlCommand cmd=new SqlCommand(strInsert,con);
//添加参数
SqlParameter ParaImage=new SqlParameter("@image",SqlDbType.Image);
ParaImage.Value=inImage;
cmd.Parameters.Add(ParaImage);
//执行
try
{
cmd.ExecuteNonQuery();
}
catch
{
//捕捉异常
}
finally
{
con.Close();
}
}
//获取图片,参数strID图片对应的ID
protected void GetPic(string strID)
{
//查询对应的图片
string strSQL="Select pic From t_Pic Wher picID='"+strID+"'";
//连接数据库的字符串
string strCon="Data Source=.;Initial Catalog=数据库名;Integreated Security=SSPI";
SqlConnection con=new SqlConnection(strCon);
con.Open();
SqlCommand cmd=new SqlCommand(strSQL,con);
//读取图片
object objImage=cmd.ExecuteScalar();
if(objImage!=System.DBNull.Value)
{
byte[] outImage=(byte[])objImage;
MemoryStream ms=new MemoryStream(outImage);
Image tempImage=Image.FromStream(ms,true);
pictureBox1.Image=tempImage;
}
con.Close();
}