using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.Drawing;
|
using System.IO;
|
|
namespace BLL
|
{
|
public class ClsFile
|
{
|
private string _server = string.Empty;
|
private string _database = string.Empty;
|
private string _uid = string.Empty;
|
private string _pwd = string.Empty;
|
private string _sqlConnection = string.Empty;
|
|
public ClsFile(string server, string database, string uid, string pwd)
|
{
|
_server = server;
|
_database = database;
|
_uid = uid;
|
_pwd = pwd;
|
_sqlConnection = "server=" + _server + ";database=" + _database + ";uid=" + _uid + ";pwd=" + _pwd;
|
}
|
|
//插入图片(table 表名、fieldName 存储文件字段名、sPath 文件完整路径)【程序上传使用,存入HX_UPDATE】
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="table">表名</param>
|
/// <param name="fieldName">存储文件字段名</param>
|
/// <param name="sName">文件名</param>
|
/// <param name="sNo">版本号</param>
|
/// <param name="sSize">文件大小</param>
|
/// <param name="sPath">文件完整路径</param>
|
/// <param name="sErr"></param>
|
/// <returns></returns>
|
public bool Insert_File(string table, string fieldName, string sName, long sNo, long sSize, string sPath, ref string sErr)
|
{
|
try
|
{
|
SqlConnection con = new SqlConnection(_sqlConnection);
|
con.Open();
|
byte[] FileList = this.FileToByteArray(sPath);
|
string commandText = @" INSERT INTO " + table + "(" + fieldName + ") " +
|
"VALUES ('" + sName + "'," + sNo.ToString() + ",@FileList," + sSize.ToString() + ")";
|
SqlCommand comm = new SqlCommand(commandText, con);
|
comm.Parameters.AddWithValue("@FileList", FileList);
|
comm.ExecuteNonQuery();
|
con.Close();
|
}
|
catch (Exception e)
|
{
|
sErr = e.Message;
|
return false;
|
}
|
return true;
|
}
|
|
//插入图片(table 表名、fieldName 存储文件字段名、sPath 文件完整路径)
|
public bool Insert_File(string table, string fieldName,long HInterID,int HEntryID,string sPath, ref string sErr)
|
{
|
try
|
{
|
SqlConnection con = new SqlConnection(_sqlConnection);
|
con.Open();
|
byte[] FileList = this.FileToByteArray(sPath);
|
string commandText = @" INSERT INTO " + table + "(" + fieldName + ") " +
|
"VALUES (" + HInterID.ToString() + "," + HEntryID.ToString() + ",@FileList,'" + sPath + "')";
|
SqlCommand comm = new SqlCommand(commandText, con);
|
comm.Parameters.AddWithValue("@FileList", FileList);
|
comm.ExecuteNonQuery();
|
con.Close();
|
}
|
catch(Exception e)
|
{
|
sErr = e.Message;
|
return false;
|
}
|
return true;
|
}
|
|
//把文件转换成byte[]
|
public byte[] FileToByteArray(String FilePath)
|
{
|
FileStream stream = new FileInfo(FilePath).OpenRead();
|
byte[] buffer = new byte[stream.Length];
|
stream.Read(buffer, 0, Convert.ToInt32(stream.Length));
|
return buffer;
|
}
|
|
//读取 fieldName 该字段中符合条件的所有文件(sql SQL查询语句、fieldName 存储图片字段名)
|
public void Get_File(string sql, string fieldName,string FileName)
|
{
|
List<Image> InformatoinCollection = new List<Image>();
|
SqlConnection cn = new SqlConnection(_sqlConnection);
|
cn.Open();
|
SqlCommand cm = new SqlCommand(sql, cn);
|
SqlDataReader dr = cm.ExecuteReader();
|
byte[] oFile = null;
|
if (dr.Read())
|
{
|
oFile = (byte[])dr[fieldName];
|
}
|
FileStream fs;
|
FileInfo fi = new FileInfo(FileName);
|
fs = fi.OpenWrite();
|
fs.Write(oFile, 0, oFile.Length);
|
fs.Close();
|
dr.Close();
|
cn.Close();
|
}
|
}
|
|
}
|