浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

在.NET中调用DataWindow设置数据库

在.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
程序员来说很熟悉吧!



相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...