資料庫byte
1. c# 怎麼把byte[]存入資料庫,byte[]可以為null
判斷下就好了,如果為null,就不插入該欄位,但資料庫要把該欄位設為允許NULL。
2. C#怎麼將byte[]存入到資料庫呀
第一種:可以直接進行寫入,代碼如下:
[c-sharp] view plainprint?
public static byte[] GetBytesByImage(PictureBox pb)
{
byte[] photo_byte= null;
if (!pb.Image.Equals(null))
{
using (MemoryStream ms = new MemoryStream())
{
Bitmap bmp = new Bitmap(pb.Image);
bmp.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
photo_byte = new byte[ms.Length];
ms.Position = 0;
ms.Read(photo_byte, 0, Convert.ToInt32(ms.Length));
bmp.Dispose();
}
}
return photo_byte;
}
第二種:首先將照片轉化為byte[]類型,然後在寫入數據,代碼如下;
[c-sharp] view plainprint?
public static byte[] GetBytesByImagePath(string strFile)
{
byte[] photo_byte = null;
using (FileStream fs = new FileStream(strFile, FileMode.Open, FileAccess.Read))
{
using (BinaryReader br = new BinaryReader(fs))
{
photo_byte = br.ReadBytes((int)fs.Length);
}
}
return photo_byte;
}
第三種:直接讀取byte[]並轉化為圖片;
[c-sharp] view plainprint?
public static Image GetImageByBytes(byte[] bytes)
{
Image photo = null;
using (MemoryStream ms = new MemoryStream(bytes))
{
ms.Write(bytes, 0, bytes.Length);
photo = Image.FromStream(ms, true);
}
return photo;
}
3. byte在資料庫中占幾個位元組
如果在英文狀態下的輸入的只有一個位元組,中文狀態下就是2個,在sql裡面只要語法沒錯的話就是一個 一個1個跟英文數字一樣 1 byte. MSSQL
4. 資料庫查出byte 型數據怎麼顯示
#region 頁面上顯示圖片
/// <summary>
/// 頁面上顯示圖片
/// </summary>
/// <param name="NewsID">新聞編號</param>
/// <param name="Page">顯示圖片的頁</param>
/// <param name="DL"></param>
public static void ShowImg(string TableName,string aKeyName,string aFID, System.Web.UI.Page Page,string Colunm)
{
DataAccess da = DataAccessFactory.CreateDataAccessInstance(UEMSConfig.Func_GetDBConnectionStr());
try
{
da.OpenReader();
using (System.Data.Common.DbDataReader dr = da.ExecuteReader("select " + Colunm + " from " + TableName + " where " + aKeyName + "='" + aFID.Trim() + "'"))
{
while (dr.Read())
{
Page.Response.BinaryWrite((byte[])dr["" + Colunm + ""]);//關鍵是這一句,呵呵
}
dr.Close();
}
}
catch (Exception ex)
{
}
finally
{
}
}
#endregion
5. oracle資料庫,char與BYTE的問題
byte
=
unsigned
char
在文本方式傳輸中沒有區別,但二進制數據最好使用byte,以防「負數以1補位」,造成數據處理過程中的錯誤變換。