对SQL image 字段数据的存取

后台主要函数
private void InsertDataBase(string name, string desc, string path)
    
{  
            //------name 文件名   -------desc 文件表述   --------path 文件路径 
        FileStream fs 
= File.OpenRead(path);
        
byte[] byt = new byte[fs.Length];
        fs.Read(byt, 
0, (int)fs.Length);

        SqlConnection cn 
= new SqlConnection("server=172.17.2.98;database=developer;UID=sa;PWD=sa");
        SqlCommand cmd 
= new SqlCommand("insert into picture values (@name,@desc,@image)",cn);
        cmd.Parameters.Add(
"@name", SqlDbType.NVarChar).Value = name;
        cmd.Parameters.Add(
"@desc", SqlDbType.NVarChar).Value = desc;
        cmd.Parameters.Add(
"@image", SqlDbType.Image).Value = byt;
        
try
        
{
            cn.Open();
            cmd.ExecuteNonQuery();
        }

        
catch (SqlException ex)
        
{
            Response.Write(
"<script> alert(" + ex.Message + ")</script>");
        }

        
finally
        
{
            cn.Close();
            cmd.Dispose();
        }

        Response.Write(
"<script> alert('Successfuly!')</script>");
    }


存在数据库后要再页面显示出来可以如下:
 SqlConnection cn = new SqlConnection("server=.;database=developer;UID=sa;PWD=sa");
        SqlCommand cmd 
= new SqlCommand("select image from picture", cn);
        cn.Open();
        SqlDataReader dr 
= cmd.ExecuteReader();
        
        
while(dr.Read())
        
{
           
// Response.AddHeader("Content-Type", "image/gif");
            Response.ContentType = "image/gif";
            Response.BinaryWrite((
byte[])dr["image"]);
            
        }

        cn.Close();
        cmd.dispose();


posted @ 2008-06-11 15:34  TerryLove  阅读(238)  评论(0编辑  收藏  举报