首页 >> ADO.NET >> 正文
在.NET中调用DataWindow操作数据库-ADO.NET
来源:Dotnet频道 作者:采集 时间:2008-3-31


  Sybase在2004/1/19日推出了Pb 10 beta1版本,其中包含DataWindow.NET 1.0,这真是一个另人兴奋的消息! 在PB市场日益萎缩的今天,在.NET大行其道的今天Sybase公司终于推出了DataWindow.NET,它支持DataWindow绝大部份原有事件和属性,PB技术终于可以重新又派上用场了!!
  
  下过来安装程序,便急不可待的在VS.NET2003下面做了一个简单的例子,发现真的很好用!源代码如下:
  

  using System;
  using System.Drawing;
  using System.Collections;
  using System.ComponentModel;
  using System.Windows.Forms;
  
  namespace cjgl.Report
  {
  /// <summary>
  /// DataWindowTest 的摘要说明。
  /// </summary>
  public class DataWindowTest : System.Windows.Forms.Form
  {
  private Sybase.DataWindow.DataWindowControl dw;
  private Sybase.DataWindow.Transaction Trans;
  private System.Windows.Forms.Button btnRetrieve;
  private System.Windows.Forms.Button btnDelete;
  private System.Windows.Forms.Button btnInsert;
  private System.Windows.Forms.Button btnSave;
  private System.ComponentModel.IContainer components;
  
  public DataWindowTest()
  {
  //
  // Windows 窗体设计器支持所必需的
  //
  InitializeComponent();
  
  //
  // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  //
  
  
  }
  
  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
  if( disposing )
  {
  if(components != null)
  {
  components.Dispose();
  }
  }
  base.Dispose( disposing );
  }
  
  #region Windows 窗体设计器生成的代码
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
  this.components = new System.ComponentModel.Container();
  this.btnRetrieve = new System.Windows.Forms.Button();
  this.btnDelete = new System.Windows.Forms.Button();
  this.btnInsert = new System.Windows.Forms.Button();
  this.dw = new Sybase.DataWindow.DataWindowControl();
  this.Trans = new Sybase.DataWindow.Transaction(this.components);
  this.btnSave = new System.Windows.Forms.Button();
  this.SuspendLayout();
  //
  // btnRetrieve
  //
  this.btnRetrieve.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
  this.btnRetrieve.Location = new System.Drawing.Point(360, 297);
  this.btnRetrieve.Name = "btnRetrieve";
  this.btnRetrieve.TabIndex = 1;
  this.btnRetrieve.Text = "Retrieve";
  this.btnRetrieve.Click += new System.EventHandler(this.btnRetrieve_Click);
  //
  // btnDelete
  //
  this.btnDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
  this.btnDelete.Location = new System.Drawing.Point(260, 296);
  this.btnDelete.Name = "btnDelete";
  this.btnDelete.TabIndex = 2;
  this.btnDelete.Text = "Delete";
  this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);
  //
  // btnInsert
  //
  this.btnInsert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
  this.btnInsert.Location = new System.Drawing.Point(152, 295);
  this.btnInsert.Name = "btnInsert";
  this.btnInsert.TabIndex = 3;
  this.btnInsert.Text = "Insert";
  this.btnInsert.Click += new System.EventHandler(this.btnInsert_Click);
  //
  // dw
  //
  this.dw.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
  | System.Windows.Forms.AnchorStyles.Left)
  | System.Windows.Forms.AnchorStyles.Right)));
  this.dw.DataWindowObject = "dw_customer";
  this.dw.LibraryList = "D:\\Program Files\\Sybase10\\DataWindow Builder 1.0\\dwb100.pbl";
  this.dw.Location = new System.Drawing.Point(5, 5);
  this.dw.Name = "dw";
  this.dw.ScrollBars = System.Windows.Forms.ScrollBars.Both;
  this.dw.Size = new System.Drawing.Size(432, 280);
  this.dw.TabIndex = 4;
  this.dw.Text = "dataWindowControl1";
  this.dw.TypeOfDataWindow = Sybase.DataWindow.DataWindowType.Grid;
  //
  // Trans
  //
  this.Trans.Database = "asademo9.dba";
  this.Trans.Dbms = Sybase.DataWindow.DbmsType.OleDb;
  this.Trans.DbParameter = "PROVIDER=\'ASAProv.90\'";
  this.Trans.Password = "sql";
  this.Trans.ServerName = "asademo9";
  this.Trans.UserID = "dba";
  //
  // btnSave
  //
  this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
  this.btnSave.Location = new System.Drawing.Point(46, 296);
  this.btnSave.Name = "btnSave";
  this.btnSave.TabIndex = 5;
  this.btnSave.Text = "&Save";
  this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
  //
  // DataWindowTest
  //
  this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  this.ClientSize = new System.Drawing.Size(444, 333);
  this.Controls.Add(this.btnSave);
  this.Controls.Add(this.dw);
  this.Controls.Add(this.btnInsert);
  this.Controls.Add(this.btnDelete);
  this.Controls.Add(this.btnRetrieve);
  this.Name = "DataWindowTest";
  this.Text = "利用DataWindow.NET设计";
  this.ResumeLayout(false);
  
  }
  #endregion
  
  private void btnRetrieve_Click(object sender, System.EventArgs e)
  {
  try
  {
  if ( !Trans.IsConnected)
  {
  Trans.Connect();
  }
  dw.SetTransObject(Trans);
  dw.Retrieve();
  
  }
  catch( Sybase.DataWindow.DbErrorException ee)
  {
  MessageBox.Show("数据库连接出错!"+ee.SqlErrorText);
  return;
  }
  }
  
  private void btnInsert_Click(object sender, System.EventArgs e)
  {
  //插入一行
  int insertRow = dw.InsertRow(0);
  dw.Scroll(insertRow);
  //赋初值
  dw.SetItemDouble(insertRow,"id",9999);
  dw.SetItemString(insertRow,"fName","Huang");
  dw.SetItemString(insertRow,"lName","Yong");
  dw.SetItemString(insertRow,"address","ChangSha");
  dw.SetItemString(insertRow,"city","ChangSha");
  }
  
  private void btnDelete_Click(object sender, System.EventArgs e)
  {
  dw.DeleteRow(dw.CurrentRow);
  }
  
  private void btnSave_Click(object sender, System.EventArgs e)
  {
  try
  {
  dw.Update();
  Trans.Commit();
  }
  catch (Sybase.DataWindow.DbErrorException ee)
  {
  MessageBox.Show("更新不成功!原因:"+ee.SqlErrorText);
  Trans.Rollback();
  }
  catch (Sybase.DataWindow.DataWindowNotCreatedException ee)
  {
  MessageBox.Show("数据窗口还没有创建!");
  Trans.Rollback();
  }
  catch(Sybase.DataWindow.MethodFailureException ee)
  {
  MessageBox.Show("更新不成功!原因:"+ee.Message.ToString());
  Trans.Rollback();
  }
  }
  
  }
  }
  通过PB,或DataWindow Builder创建PBL库和DataWindow对象后,就像在PB中操作一样,指定PBL库位置和DataWindow控件相关连DataWindow对象,就可对DataWindow进行相关的操作如dw.SetTransObject(Trans);dw.Retrieve();怎么样?对原PB
  程序员来说很熟悉吧!
  
相关新闻
相关评论
 
评论表单加载中...
 
ADO.NET文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
最新文章
   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号