Using System.Text;byte[ ] 转换为stringbyte[ ] image;string ll = Encoding.Default.GetString(image);
string 转换为byte[ ]string ss;byte[] b = Encoding.Default.GetBytes(ss);数据库中image类型的字段的处理。首先我想从数据库中读出图片(以image类型存储的), 并且写入txt文件中:private void GetImage() { string conn = "Server=192.168.0.11; User id=user; Pwd=pwd; Database=database"; SqlConnection sqlCon = new SqlConnection(conn); string sql = "SELECT ImageFile, PersonID FROM Persons where PersonID = 1"; SqlCommand myCommand = new SqlCommand(); myCommand.Connection = sqlCon; myCommand.CommandType = CommandType.Text; myCommand.CommandText = sql; DataTable myTable = new DataTable(); SqlDataAdapter myDataAda = new SqlDataAdapter(); myDataAda.SelectCommand = myCommand; try { sqlCon.Open(); myDataAda.Fill(myTable); sqlCon.Close(); if(myTable.Rows.Count>0) { byte[] image = (byte[])myTable.Rows[0]["ImageFile"]; string ll = Encoding.Default.GetString(image); WriteStr(@"F:\test.txt",ll); } } catch(Exception ex) { string err = ex.Message; } finally { sqlCon.Close(); myCommand.Dispose(); myDataAda.Dispose(); } } private void WriteStr(string strLogFileName, string strLogContent) { try { FileInfo objFileInfo = new FileInfo(strLogFileName); using (FileStream objFileStream = objFileInfo.OpenWrite()) { using (StreamWriter objStreamWriter = new StreamWriter(objFileStream)) { objStreamWriter.BaseStream.Seek(0, SeekOrigin.End); objStreamWriter.Write("{0}", strLogContent); } } } catch { } }
其次,需要把图片从txt文件中读出然后存入数据库中。string ss = ReadStr(@"F:\test.txt"); byte[] b = Encoding.Default.GetBytes(ss); string conn = "Server=server; User id=user; Pwd=pwd; Database=database"; SqlConnection sqlCon = new SqlConnection(conn); string sql = "update Persons set ImageFile=@img where PersonID = 1"; SqlCommand myCommand = new SqlCommand(); SqlParameter sp = new SqlParameter("@img",SqlDbType.Image); myCommand.Connection = sqlCon; myCommand.CommandType = CommandType.Text; myCommand.CommandText = sql; sp.Value = b; myCommand.Parameters.Add(sp); try { sqlCon.Open(); myCommand.ExecuteNonQuery(); sqlCon.Close(); } catch(Exception eS) { string ee = eS.Message; } finally { sqlCon.Close(); myCommand.Dispose(); }
Stream To Byte[]
public static byte[] StreamToByte(Stream Reader)
{ try { MemoryStream mem = new MemoryStream(1024 * 500); byte[] buffer = new byte[1024]; int bytesRead = 0; int TotalByteRead = 0; while (true) { bytesRead = Reader.Read(buffer, 0, buffer.Length); if (bytesRead == 0) break; TotalByteRead += bytesRead; mem.Write(buffer, 0, buffer.Length); } if (mem.Length > 0) { return mem.ToArray(); } else { return null; } } catch (Exception ep) { throw ep; } }