[WebMethod(Description = "将文件以二进制流的形式保存到数据库中!")]
public void saveDocuments(string filePath,string contractID)
{
ConnectDB();
con.Open();
try{
FileStream fs = new FileStream(filePath,FileMode.OpenOrCreate,FileAccess.Read);
byte[] blobValue = new byte[fs.Length];//文件在oracle数据库中存放为BLOB类型
fs.Read(blobValue, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
OracleCommand com = con.CreateCommand();
string sql = "update fuel_contract_inf set contract=:conTract where contractid = '" + contractID + "'";
com.CommandText = sql;
com.CommandType = CommandType.Text;
OracleParameter op = com.Parameters.Add("conTract", OracleType.Blob);
op.Direction = ParameterDirection.Input;
op.Value = blobValue;
com.ExecuteNonQuery();
}catch(Exception ex)
{MessageBox.Show(ex.Message);}
finally{con.Close();}
}
[WebMethod(Description = "将数据库中的二进制流数据读到一个文件中!")]
public void readDocuments(string filePath,string sql)
{
ConnectDB();
com.CommandText = sql;
con.Open();
try{
OracleDataReader reader = com.ExecuteReader();
if (reader.Read())
{
byte[] blobvalue = new byte[(reader.GetBytes(0, 0, null, 0, int.MaxValue))];
reader.GetBytes(0, 0, blobvalue, 0, blobvalue.Length);
FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
fs.Write(blobvalue, 0, blobvalue.Length);
fs.Close();
}
reader.Close();
}catch(Exception ex)
{MessageBox.Show(ex.Message);}
finally{con.Close();}
}
利用数据库存取文件
最新推荐文章于 2023-07-09 01:46:03 发布