byte数据库
A. byte在数据库中占几个字节
如果在英文状态下的输入的只有一个字节,中文状态下就是2个,在sql里面只要语法没错的话就是一个 一个1个跟英文数字一样 1 byte. MSSQL
B. 怎样把变量byte[]型数组中二进制数据插入到数据库中
//保存文件到SQL Server数据库中
FileInfo fi=new FileInfo(fileName);
FileStream fs=fi.OpenRead();
byte[] bytes=new byte[fs.Length];
fs.Read(bytes,0,Convert.ToInt32(fs.Length));
SqlCommand cm=new SqlCommand();
cm.Connection=cn;
cm.CommandType=CommandType.Text;
if(cn.State==0) cn.Open();
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
spFile.Value=bytes;
cm.Parameters.Add(spFile);
cm.ExecuteNonQuery()
//保存文件到Access数据库中
FileInfo fi=new FileInfo(fileName);
FileStream fs=fi.OpenRead();
byte[] bytes=new byte[fs.Length];
fs.Read(bytes,0,Convert.ToInt32(fs.Length));
OleDbCommand cm=new OleDbCommand();
cm.Connection=cn;
cm.CommandType=CommandType.Text;
if(cn.State==0) cn.Open();
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
OleDbParameter spFile=new OleDbParameter("@file",OleDbType.Binary);
spFile.Value=bytes;
cm.Parameters.Add(spFile);
cm.ExecuteNonQuery()
代码中的fileName是文件的完整名称,tableName是要操作的表名称,fieldName是要保存文件的字段名称
C. c# 怎么把byte[]存入数据库,byte[]可以为null
判断下就好了,如果为null,就不插入该字段,但数据库要把该字段设为允许NULL。
D. 我从页面接收的是String类型,现在要存入数据库,数据库的类型是byte,怎么转化存入数据库
convert.tobyte()或者byte[] buffer=Encoding.UTF8.GetBytes()
E. byte数组在数据库中应该存成什么字段
数组的话,其实存库还是需要转换为字符串,所有char类型或varchar都可以
F. 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;
}
G. 数据库查出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