public void get_photo(PictureBox ph)
{
byte[] imagebytes = null;
string connStr = "Data Source=(local);Initial Catalog=demo;Integrated Security=True;uid=sa;Password=123456;server=.";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
string sql = ("select Rc_Image from RecordCard");
SqlCommand sqlcom = new SqlCommand(sql,conn);
DataSet dataset = new DataSet();
SqlDataAdapter adater = new SqlDataAdapter(sql, conn);
adater.Fill(dataset);
SqlDataReader dr = sqlcom.ExecuteReader();
while (dr.Read())
{
imagebytes = (byte[])dr.GetValue(18);
}
MemoryStream ms = new MemoryStream(imagebytes);
Bitmap bmpt = new Bitmap(ms);
ph.Image = bmpt;
}
imagebytes = (byte[])dr.GetValue(18);
显然这里的问题
检查下dr有没有19个栏,栏是从下标0开始算的。具体要看RecordCard的表怎么定义的。