C#写入和读取数据库blob字段代码

==========================================================
try
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "*.*|*.*";
openFileDialog.CheckFileExists = true;
openFileDialog.Title = "选择上传的文件";

if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
return;
}

FileStream fileStream = new FileStream(
openFileDialog.FileName, FileMode.Open, FileAccess.Read);

byte[] fileData = new byte[fileStream.length + 1];
fileStream.Read(fileData, 0, (int)fileStream.Length);

string sql = "select * from TABLE_NAME where id = '" + id + "'";
DataSet ds = OA.RsGet(sql, null);
DataRow row;

if (ds.Tables[0].Rows.Count > 0)
{
row = ds.Tables[0].Rows[0];
}
else
{
row = ds.Tables[0].NewRow();

row["ID"] = Guid.NewGuid().ToString("N");
ds.Tables[0].Rows.Add(row);
}
row["FILE"] = fileData;
row["otherField"] = roadWidth;

if (OA.RsUpdate(ds) > 0)
{
MessageBox.Show("保存成功!");
}

}
catch(Exception exc)
{
MessageBox.Show("保存出错!请检查数据。\n" + exc.Message);
}
============================================================


读取数据库blob字段,存成本地文件。


///


/// 读取ORACLEBLOB字段到文件,返回文件名 Add by ZhaoYong |2012-03-21|
///

/// 索引值
/// 索引字段名称
/// 要查询的表名称
/// 存放文件的字段名称
/// 保存到本地的文件名
///
public static bool ReadBlobToFile(string idValue, string idField, string table, string blobField, string outFileFullName)
{
int PictureCol = 0;

outFileFullName = outFileFullName.Trim();

try
{
OracleCommand cmd = new OracleCommand("Select " + blobField + " From " + table +
" Where " + idField + "='" + idValue + "'", OracleDb.OracleDb.Connection);

OracleDataReader myReader = cmd.ExecuteReader();
myReader.Read();

if (myReader.HasRows == false)
{
return false;

}

byte[] b = new byte[myReader.GetBytes(PictureCol, 0, null, 0, int.MaxValue) - 1];
myReader.GetBytes(PictureCol, 0, b, 0, b.Length);
myReader.Close();

System.IO.FileStream fileStream = new System.IO.FileStream(
outFileFullName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
fileStream.Write(b, 0, b.Length);
fileStream.Close();
}
catch
{
return false;
}

return true;
}

相关文档
最新文档