您的位置:首页 > 数据库 > Oracle

C#中oracle二进制文件操作(新增、修改)

2007-08-07 14:15 525 查看
/*oracle数据库方式1,参数保存,保存二进制文件,变量名sql用@,oracle用:
OracleConnection oConn = new OracleConnection("Data Source=bm;Persist Security Info=True;User ID=bm;PassWord=bm;Unicode=True");
string sSql = "insert into report_main values(:guid,:reportId,:reportName,:reportInfo,:reportFile)";
OracleCommand oComm = new OracleCommand(sSql, oConn);
oComm.Parameters.Add(":guid", OracleType.VarChar, 36);
oComm.Parameters[":guid"].Value = Guid.NewGuid().ToString().ToUpper();
oComm.Parameters.Add(":reportId", OracleType.VarChar, 36);
oComm.Parameters[":reportId"].Value = frmAddReport.ReportId;
oComm.Parameters.Add(":reportName", OracleType.VarChar, 36);
oComm.Parameters[":reportName"].Value = frmAddReport.ReportName;
oComm.Parameters.Add(":reportInfo", OracleType.VarChar, 255);
oComm.Parameters[":reportInfo"].Value = frmAddReport.ReportInfo;
oComm.Parameters.Add(":reportFile", OracleType.Blob);
oComm.Parameters[":reportFile"].Value = m.GetBuffer();
oConn.Open();
oComm.ExecuteNonQuery();
oConn.Close();

//oracle数据库方式2,DataAdapter,保存二进制文件
string sConnString = "Data Source=bm;Persist Security Info=True;User ID=bm;PassWord=bm;Unicode=True";
OracleDataAdapter da = new OracleDataAdapter("select * from report_Main", sConnString);
DataTable dt = new DataTable();
da.FillSchema(dt, SchemaType.Source);
OracleCommandBuilder cb = new OracleCommandBuilder(da);
DataRow row = dt.NewRow();
row["unid"] = Guid.NewGuid().ToString().ToUpper();
row["reportId"] = frmAddReport.sReportId;
row["reportName"] = frmAddReport.sReportName;
row["reportInfo"] = frmAddReport.sReportInfo;
row["reportFile"]=m.GetBuffer();
dt.Rows.Add(row);
da.Update(dt);
*/

/*
//oracle数据库方式写入,修改二进制文件
MemoryStream m = new MemoryStream();
fpSpread1.Save(m, false);
OracleConnection oConn = new OracleConnection("Data Source=bm;Persist Security Info=True;User ID=bm;PassWord=bm;Unicode=True");
oConn.Open();
OracleTransaction oTrans = oConn.BeginTransaction();
OracleCommand oComm = new OracleCommand();
oComm.Connection = oConn;
oComm.Transaction = oTrans;
oComm.CommandText = "select reportFile from report_Main where reportName='"+this.Text+"' for update";
OracleDataReader oReader = oComm.ExecuteReader();
using (oReader)
{
oReader.Read();
OracleLob oLob =oReader.GetOracleLob(0);
oLob.Erase();
oLob.Write(m.GetBuffer(), 0, m.GetBuffer().Length);
oTrans.Commit();
oComm.Dispose();
oConn.Dispose();
oConn.Close();
CommonDialog.ShowInformation("保存完毕!", "保存报表");
}
*/
//读取二进制文件的方法,用的ds比较简单
DataSet ds = BM.Instance().ExecuteDataset("select * from report_Main where reportName='"+sReportName+"'");
MemoryStream m = new MemoryStream((byte[])ds.Tables[0].Rows[0]["ReportFile"]);
fpSpread1.Open(m);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐