用C#实现在SQL Server中存取图片、文件

用C#实现在SQL Server中存取图片、文件
 
//ConnectionString  连接字符串

  public void SaveDataIntoDatabase(string FilePath,string ConnectionString)
  {

字串1

   if(File.Exists(FilePath)==false)
   {
    MessageBox.Show("无法读取文件!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
    return;
   }
                  
   //创建文件对象以打开的形式读取文件
   System.IO.FileStream sFileStream=new System.IO.FileStream(FilePath,System.IO.FileMode.Open);
   //分配数组大小
   byte[] bFile=new byte[sFileStream.Length];
   //将文件内容读进数组
   sFileStream.Read(bFile,0,(int)sFileStream.Length);
   //关闭文件对象
   sFileStream.Close();

 

   //创建连接
   SqlConnection conn=new SqlConnection(ConnectionString);
   SqlCommand com=conn.CreateCommand();

 

   com.CommandText="Update 表 Set [图片]=@F Where ID='0001'";
   com.CommandType=CommandType.Text;
   
   SqlParameter sp=new SqlParameter("@F",SqlDbType.Image,bFile.Length,ParameterDirection.Input,false,0,0,null,DataRowVersion.Current,bFile);
   
   com.Parameters.Add(sp);
   com.ExecuteNonQuery();
   conn.Close();
  } 字串5


  //从数据库中读取数据
  //参数:
  //FilePath    文件路径
  //ConnectionString  连接字符串

  public void LoadDataFromDatabase(string FilePath,string ConnectionString)
  {
   //判断文件是否已存在.
   if(File.Exists(FilePath)!=true)
   {
    //如存在则删除
    File.Delete(FilePath);
   }

 

   //创建连接
   SqlConnection conn=new SqlConnection(ConnectionString);
   SqlCommand com=conn.CreateCommand();
   com.CommandText="Select [图片] From 表 Where ID='0001'";
   com.CommandType=CommandType.Text;
   //用DataReader读取数据
   SqlDataReader sR=com.ExecuteReader();
  
   sR.Read();
   //判断是否有记录
   if(sR.HasRows==false)
   {
    sR.Close();
    conn.Close();
    return;
   }
   
   //分配数组大小
   byte[] bFile=new byte[Convert.ToInt32(sR.GetBytes(0,0,null,0,Int32.MaxValue))];
   //将数据读进数组
   sR.GetBytes(0,0,bFile,0,bFile.Length);
   //关闭DataReader 字串6
   sR.Close(); 字串7

   //创建文件对象以创建文件的形式打开文件
   System.IO.FileStream sFileStream=new System.IO.FileStream(FilePath,System.IO.FileMode.Create);
   //将数组的内容写进文件
   sFileStream.Write(bFile,0,bFile.Length);
   //关闭文件
   sFileStream.Close();
  } 字串3


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值