|
导读在.NET中调用DataWindow操作数据库 Sybase在2004/1/19日推出了Pb 10 beta1版本,其中包含DataWindow.NET 1.0,这真是一个另人兴奋的消息... 在.NET中调用DataWindow操作数据库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 程序员来说很熟悉吧! |
温馨提示:喜欢本站的话,请收藏一下本站!