ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ADO.Net对Oracle数据库的操作 3

ADO.Net对Oracle数据库的操作 3

原创 Linux操作系统 作者:kirinri 时间:2009-02-02 11:03:45 0 删除 编辑

2.2 数据集的浏览

string Oraclestr = "select name from telephonebook ";
OracleDataAdapter myoadapt = 
new OracleDataAdapter(OraclestrmyConnection);
DataTable mydtable = 
new DataTable();
myoadapt.Fill(mydtable);
foreach (DataRow dr in mydtable.Rows)
{
     comboBox1.Items.Add(dr[0].ToString());
}


 

2.3事务的操作。

           数据库事务是指作为单个逻辑工作单元执行的一系列操作。

  设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:

     更新客户所购商品的库存信息

     保存客户付款信息--可能包括与银行系统的交互

     生成订单并且保存到数据库中

     更新用户相关信息,例如购物数量等等

      正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如在更新商品库存信息时发生异常、该顾客银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变,比如最后一步更新用户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态--库存信息没有被更新、用户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。

  数据库事务正是用来保证这种情况下交易的平稳性和可预测性的技术。


 

//连接数据库并打开
string myConnString = "user id=xal;data source=xal2;password=xal"; 
OracleConnection myConnection = 
new OracleConnection(myConnString);
myConnection.Open();

      
//创建事务
       OracleTransaction myTransaction = myConnection.BeginTransaction();
       OracleCommand myocmd = 
new OracleCommand("", myConnection);
       myocmd.Transaction = myTransaction;
       
try
         {
             
//语句块
               myTransaction.Commit();
        }
        
catch (Exception ex)
         {
              MessageBox.Show(ex.Message);
               myTransaction.Rollback();
        }
        
finally
         {
              myConnection.Close();
        }
     }

 

2.4从数据表中读取图片数据

从数据库中取一个图片数据,用二进制数组来存储,然后将其显示在指定的控件上。

byte[tmpImage = (byte[])curRow["Pic"];
// fileLength是数组的长度(图片的大小)和curImageFormat图片格式。
fileLength = tmpImage.Length;
MemoryStream curStream = 
new MemoryStream(tmpImage);
picPersonel.Image = Image.FromStream(curStream);
curImageFormat = picPersonel.Image.RawFormat;

 

2.5 命令参数的创建和使用

创建命令参数

private OracleParameter CreateOraParam(string ParamNameobject ParamValue)
{
    OracleParameter Result = 
new OracleParameter();
     Result.ParameterName = ParamName;
     
if (ParamValue != null)
       {
           Result.Value = ParamValue;
      }
      
else
       {
           Result.Value = DBNull.Value;
      }
      Result;
}

这样的话,当要对数据库操作时就可以运用了:

insertComm.CommandText = "insert into TESTADODOTNET (ID) values (:pID)";
insertComm.Parameters.Add(CreateOraParam("pID", (txtID.Text.Trim() != "") ? txtID.Text.Trim() : 
null));

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12476590/viewspace-545008/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-21

  • 博文量
    257
  • 访问量
    499363