2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > C#(WinForm)上传图片保存到数据库和从数据库读取图片显示到窗体

C#(WinForm)上传图片保存到数据库和从数据库读取图片显示到窗体

时间:2019-10-09 03:44:32

相关推荐

C#(WinForm)上传图片保存到数据库和从数据库读取图片显示到窗体

1 //浏览图片 2 3 private void btnUp_Click(object sender, EventArgs e) 4 5 { 6 7 OpenFileDialog ofd = new OpenFileDialog(); 8 9 ofd.Title = "选择要上传的图片"; 10 11 ofd.Filter = "All Files(*.*)|*.*|位图(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg"; 12 13 ofd.ShowDialog(); 14 15 textBox1.Text = ofd.FileName; 16 17 if (!File.Exists(ofd.FileName)) 18 19 { 20 21 MessageBox.Show("照片为空"); 22 23 return; 24 25 } 26 27 } 28 29 30 31 32 33 //上传保存到数据库 34 35 private void btnUpLoad_Click(object sender, EventArgs e) 36 37 { 38 39 string strPath = txtbImage.Text.Trim(); 40 41 FileStream fs = new FileStream(strPath, FileMode.Open, FileAccess.Read); 42 43 byte[] byteFile = new byte[fs.Length]; 44 45 fs.Read(byteFile, 0, (int)fs.Length); 46 47 fs.Close(); 48 49 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True"); 50 51 try 52 53 { 54 55 SqlCommand cmd = new SqlCommand(); 56 57 cmd.Connection = conn; 58 59 60 61 string strSql = "insert into test(FileName,Img) Values(@FileName,@Img)"; 62 63 mandText =strSql ; 64 65 //cmd.Parameters.AddWithValue("@FileName", strPath); 66 67 //cmd.Parameters.AddWithValue("@Img", byteFile); 68 69 //或者 70 71 SqlParameter[] parameters = new SqlParameter[2]; 72 73 parameters[0] = new SqlParameter("@FileName", SqlDbType.NVarChar, 200); 74 75 parameters[0].Value = strPath; 76 77 parameters[1] = new SqlParameter("@Img", SqlDbType.Image,int.MaxValue); 78 79 parameters[1].Value = byteFile; 80 81 cmd.Parameters.AddRange(parameters); 82 83 conn.Open(); 84 85 cmd.ExecuteNonQuery(); 86 87 conn.Close(); 88 89 MessageBox.Show("上传成功"); 90 91 } 92 93 catch 94 95 { 96 97 conn.Close(); 98 99 MessageBox.Show("上传失败!");100 101 }102 103 }104 105 从数据库读取图片显示到窗体:106 1107 2108 3109 4110 5111 6112 7113 8114 9115 10116 11117 12118 13119 14120 15121 16122 17123 18124 19125 6 21127 22128 23129 24130 25131 26132 27133 28134 29135 30136 31137 32138 33139 34140 35141 36142 37143 38144 39145 40146 41147 42148 43149 44150 45151 46152 47153 48154 49155 50156 51157 52158 53159 54160 55161 56162 57163 58164 59165 60166 61167 62168 63169 64170 65171 66172 67173 68174 69175 70176 71177 72178 73179 //读到图片显示到PictureBox180 181 private void btnDownLoad_Click(object sender, EventArgs e)182 183 {184 185 byte[] bytFile;186 187 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True");188 189 try190 191 {192 193 SqlCommand cmd = new SqlCommand();194 195 string strSql = "select img from test where ID=3";196 197 cmd.Connection = conn;198 199 mandText = strSql;200 201 conn.Open();202 203 SqlDataReader sdr = cmd.ExecuteReader();204 205 if (sdr.Read())206 207 {208 209bytFile = (Byte[])sdr["Img"];210 211 }212 213 else214 215 {216 217bytFile = new byte[0];218 219 }220 221 sdr.Close();222 223 conn.Close();224 225 //通过内存流MemoryStream,226 227 //把byte[]数组fileContent加载到Image中并赋值给图片框的Image属性,228 229 //让数据库中的图片直接显示在窗体上。230 231 MemoryStream ms = new MemoryStream(bytFile, 0, bytFile.Length);232 233 this.picImage.Image = Image.FromStream(ms);234 235 //关闭内存流236 237 ms.Close();238 239 }240 241 catch242 243 {244 245 conn.Close();246 247 MessageBox.Show("失败");248 249 }250 251 }

代码转自IT学习广场/net/detail/30

来自凌波小屋-----冯和超的笔记-------

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。