技术开发 频道

在.NET中调用DataWindow操作数据库


【IT168技术文档】

  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
  程序员来说很熟悉吧!
0
相关文章