C#中oracle二进制文件操作(新增、修改)
2007-08-07 14:15
603 查看
/*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);
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);
相关文章推荐
- SqlHelper改的OleDbHelper,OleDbHelper新增、修改、删除(操作二进制文件)
- SqlHelper改的OleDbHelper,OleDbHelper新增、修改、删除(操作二进制文件)
- C#对本地文件简单(删除/修改)操作
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
- oracle对没有主键表的新增主键修改表数据操作(没有主键字段,则新增一个主键字段,然后赋值,然后再添加主键)
- C# 二进制文件操作(内容搜索、数据截取)
- C#实现的基于二进制读写文件操作示例
- c#程序中调用Oracle存储过程上传二进制文件
- C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
- C#里对xml文件进行修改,新增,删除,插入操作
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
- C#对本地文件简单(删除/修改)操作
- c#操作配制文件(增加,修改Framework1.1也适用于2.0)
- C#操作文件、文件夹(复制、删除、新增、设置只读)-技术&分享
- C#的二进制文件操作
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
- C#的二进制文件操作
- C# 号码归属地查询算法(根据Android来电归属地二进制文件查询修改)
- oracle导入dmp文件命令、sql文件命令, Oracle用户的新增、修改、删除及授权
- 【C#】C#操作XML方法:新增、修改和删除节点与属性