新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → 用Visual C#中实现DB2数据库编程 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2525 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 用Visual C#中实现DB2数据库编程 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 用Visual C#中实现DB2数据库编程


    发信人: cataract (大瀑布来啦), 信区: DotNET        
    标  题: 用Visual C#中实现DB2数据库编程
    发信站: BBS 水木清华站 (Tue Dec 11 10:37:07 2001)

    发信人: xixixi (wenwen), 信区: dotNET
    标  题: 用Visual C#中实现DB2数据库编程
    发信站: 飘渺水云间 (Sun Dec  9 21:16:22 2001), 转信

    在Visual Studio.NET Beta 1版本中访问IBM DB2等非SQL Server数据库通常是使
    用AD
    O.NET的ODBC方法,而在Beta 2中则改用OLE DB方式存取数据库。
    Beta1中连接字符串主要需声明数据库的ODBC的DNS名字,但Beta 2中的OLE DB连接
    的字
    符串就较复杂了,使用的类也不相同。由于DB2等数据库在大型机等应用中使用非
    常广泛
    ,.NET自然会全力支持此类编程开发,为此,下文将逐步阐述OLE DB的DB2开发。

    OLE DB for DB2驱动
    首先,Visual Studio.NET和Windows 2000 Server中并未直接提供DB2的OLE DB驱
    动,因
    此需下载Microsoft Host Integration Server 2000软件,该软件包中含OLE DB  
    Provi
    der and ODBC driver for DB2,需下载Server端软件包,并在安装时选择安装
    Data In
    tegration,安装完成后就可使用其OLE DB的DB2驱动了。
    设置数据库连接
    首先,我们需配置好DB2的客户端设置,打开视图选单项中的服务器资源管理器,
    在其数
    据连接中新增一个连接,指定程序选项时选择Microsoft OLE DB Provider for  
    DB2,下
    一步连接选项中,填写如下信息:
    Data Source: QCDB(请酌情修改)
    Network:TCP/IP
    IP Address:数据库服务器地址
    Network Port:DB2服务端口
    Username:数据库访问权限的用户名
    Password:该用户口令
    Database initial Catalog:QCDB
    Package collection:QCDB
    default schema:Userid
    下一步高级选项中选各自国家语言对应的code page及CCSID,最后按确认键完成创
    建连
    接。
    假设QCDB这个DB2数据库中有一名为address的新数据表,其包含四个字段:name、
    emai
    l、age和address,我们可用服务器资源管理器打开上述连接及该数据表,可输入
    数条中
    文记录,确定中文字符能否正常显示。
    为项目增加数据库连接
    用Visual Studio新建一个ASP.NET项目,激活服务器资源管理器的上述连接,用鼠
    标将
    该连接拖至新建的Web Form上,则OLE DB需要的连接字符参数全部自动写入Web  
    Form程
    序中,上述连接生成的语句如下:
    this.oleDbConnection1.ConnectionString = @"Provider=DB2OLEDB;
    Cache Authentication=False;
    Integrated Security="""";
    Password=freebsd9;
    Persist Security Info=True;
    User ID=篢CP/IP
    IP Address:数据库服务器地址
    Network Port:DB2服务端口
    Username:数据库访问权限的用户名
    Password:该用户口令
    Database initial Catalog:QCDB
    Package collection:QCDB
    default schema:Userid
    下一步高级选项中选各自国家语言对应的code page及CCSID,最后按确认键完成创
    建连
    接。
    假设QCDB这个DB2数据库中有一名为address的新数据表,其包含四个字段:name、
    emai
    l、age和address,我们可用服务器资源管理器打开上述连接及该数据表,可输入
    数条中
    文记录,确定中文字符能否正常显示。
    为项目增加数据库连接
    用Visual Studio新建一个ASP.NET项目,激活服务器资源管理器的上述连接,用鼠
    标将
    该连接拖至新建的Web Form上,则OLE DB需要的连接字符参数全部自动写入Web  
    Form程
    序中,上述连接生成的语句如下:
    this.oleDbConnection1.ConnectionString = @"Provider=DB2OLEDB;
    Cache Authentication=False;
    Integrated Security="""";
    Password=freebsd9;
    Persist Security Info=True;
    User ID=userid;Initial Catalog=qcdb;
    Data Source=qcdb;Mode=ReadWrite;
    Extended Properties="""";
    APPC Remote LU Alias="""";
    APPC Local LU Alias="""";
    APPC Mode Name=QPCSUPP;
    Network Transport Library=TCPIP;
    Host CCSID=37;PC Code Page=1282;
    Network Address=172.23.169.1;
    Network Port=4444;Package Collection=qcdb;
    Default Schema=userid;Alternate TP Name="""";
    Process Binary as Character=False;
    Units of Work=RUW"
    用服务器资源管理器工具生成连接可避免错写各种参数,从而可快速地实现数据库
    连接

    Web Form显示数据库数据
    为Web Form新增一个OleDbDataAdapter类的对象oleDbDataAdapter1,为其选择数
    据连接
    时选上面建立的连接如:qcdb.qcdb.userid,选择使用SQL语句,生成SQL语句如:
    Sele
    ct from address,最后提示完成。再为Web Form新增一个DataSet并命名为
    dataSet1
    用来放查询得到的数据。新增一个显示数据用的DataGrid命名为DataGird1,最后
    在Web
    Form的程序段中的Page_Init部分中增加如下代码:
    oleDbConnection1.Open();
    //打开数据库连接
    oleDbDataAdapter1.Fill(dataSet1,"Address");
    //将得来的数据填入dataSet
    DataGrid1.DataBind();
    //绑定数据
    oleDbConnection1.Close();
    //关闭连接
    编译运行后,可见address表中内容被显示于Web Form的DataBrid中。
    OleDbConnection
    1等属性设置都在生成的Web Form设计代码中。
    增加数据库数据
    在Web Form上新增对应字段数量个数的TextBox,及一个button,为该按键增加
    Click响
    应事件代码如下:
    this.oleDbInsertCommand1.CommandText = "INSERT INTO ADDRESS(NAME, EMAIL,
    AGE
    , ADDRESS) VALUES ('"+TextBox1.Text+"','"+TextBox2.Text+"','"+TextBox3.
    Text+
    "','"+TextBox4.Text+"')";
    oleDbInsertCommand1.Connection.Open();
    //打开连接
    oleDbInsertCommand1.ExecuteNonQuery();
    //执行该SQL语句
    oleDbInsertCommand1.Connection.Close();
    //关闭连接
    实际编程中,我们需注意SQL语句的单引号问题以及数字和字符串处理问题。
    删除数据库数据
    在Web Form上新增一个TextBox5及一个按键,要执行删除时,在TextBox5中填入要
    删除
    记录的name字段的值,然后按该按键执行删除。该按键代码如下:
    System.Data.OleDb.OleDbCommand oleDeleteCommand1 = new System.Data.
    OleDb.Ole
    DbCommand();
    this.oleDbDataAdapter1.DeleteCommand = oleDeleteCommand1;
    //声明为oleDb命令
    oleDeleteCommand1.CommandText="DELETE FROM ADDRESS WHERE  
    NAME='"+TextBox5.Te
    xt+"'";
    oleDeleteCommand1.Connection = this.oleDbConnection1;
    //指明连接
    oleDeleteCommand1.Connection.Open();
    //打开连接
    oleDeleteCommand1.ExecuteNonQuery();
    //执行SQL语句
    oleDeleteCommand1.Connection.Close();
    //关闭连接
    对于增加、更新和删除操作后的DataGrid刷新,可执行类似的Select SQL语句即可

    上述代码可供各种非SQL Server数据库编程参考和使用,微软为此提供了如OLE DB
    Pro
    vider for Oracle、AS/400和VSAM等众多驱动,OLE DB方式确实提供了较ODBC方式
    更为
    广泛的数据存取范围,如可存取Access库中的数据、邮件系统中的数据、Web上的
    文本及
    图形、目录服务等等,符合ODBC标准的数据源就是符合OLE DB标准的数据存储的子
    集,
    而且OLE DB的API是符合COM标准和基于对象的API,这些都是较原ODBC方式有大幅
    改进,
    从而为综合的数据集成处理提供了更广泛的支持。
    通过以上讲解,笔者希望使读者初步了解在Visual Studio.NET中,以DB2为后台数
    据库
    时应用系统的开发步骤,也希望读者举一反三,领会思想和方法,以便更好地应用
    到自
    DbCommand();
    this.oleDbDataAdapter1.DeleteCommand = oleDeleteCommand1;
    //声明为oleDb命令
    oleDeleteCommand1.CommandText="DELETE FROM ADDRESS WHERE  
    NAME='"+TextBox5.Te
    xt+"'";
    oleDeleteCommand1.Connection = this.oleDbConnection1;
    //指明连接
    oleDeleteCommand1.Connection.Open();
    //打开连接
    oleDeleteCommand1.ExecuteNonQuery();
    //执行SQL语句
    oleDeleteCommand1.Connection.Close();
    //关闭连接
    对于增加、更新和删除操作后的DataGrid刷新,可执行类似的Select SQL语句即可

    上述代码可供各种非SQL Server数据库编程参考和使用,微软为此提供了如OLE DB
    Pro
    vider for Oracle、AS/400和VSAM等众多驱动,OLE DB方式确实提供了较ODBC方式
    更为
    广泛的数据存取范围,如可存取Access库中的数据、邮件系统中的数据、Web上的
    文本及
    图形、目录服务等等,符合ODBC标准的数据源就是符合OLE DB标准的数据存储的子
    集,
    而且OLE DB的API是符合COM标准和基于对象的API,这些都是较原ODBC方式有大幅
    改进,
    从而为综合的数据集成处理提供了更广泛的支持。
    通过以上讲解,笔者希望使读者初步了解在Visual Studio.NET中,以DB2为后台数
    据库
    时应用系统的开发步骤,也希望读者举一反三,领会思想和方法,以便更好地应用
    到自
    using System.Windows.Forms ;
    //Class Form1 继承并扩展 System.Windows.Forms名称空间中class Form
    public class Form1 : Form
    {
    public static void Main()
    {
    //运行程序
    Application.Run(new Form1());
    }
    }
    小结:
    1).首选要使用"using System.Windows.Forms"语句导入WinForm的名称空间
    2).声明Form1 类,此类是继承、扩展了using System.Windows.Forms 名称空间
    中的F
    orm 类
    3)."Application"类,此类也被定义在using System.Windows.Forms名称空间中
    ,由于
    此类封闭的,所有我们不能继承。"Application"类主要作用是运行和退出
    Windows的应
    用程序,还可以处理Windows的消息。调用"Application"类的"Run"方法表明将要
    开始运
    行应用程序。
    三.做一个透明的WinForm
    当我第一次在视窗2000中看到透明的窗体,就想做出这样一个窗体应该是非常难的
    。肯
    定要调用很多的API函数。当接触了.Net以后,才发现用VisualC#做出一个透明的
    窗体是
    多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的
    透明
    窗体到底是什么样。
    透明窗体的源代码:second.cs
    using System ;
    using System.Windows.Forms ;
    using System.Drawing ;
    public class Form2 : Form
    {
    public static void Main( )
    {
    Application.Run( new Form2( ) );
    }
    public Form2( )
    {
    this.Location = new System.Drawing.Point( 100 , 100 ) ;
    this.Cursor = System.Windows.Forms.Cursors.Hand;
    // 定义在窗体上,光标显示为手形

    this.Text = "透明的WinForm窗体!";
    // 定义窗体的标题名称
    this.StartPosition = System.Windows.Forms.FormStartPosition.
    CenterScreen;
    // 定义窗体的开始显示位置是屏幕的中间
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
    // 窗体的边界是Fixed3D类型
    窗体到底是什么样。
    透明窗体的源代码:second.cs
    using System ;
    using System.Windows.Forms ;
    using System.Drawing ;
    public class Form2 : Form
    {
    public static void Main( )
    {
    Application.Run( new Form2( ) );
    }
    public Form2( )
    {
    this.Location = new System.Drawing.Point( 100 , 100 ) ;
    this.Cursor = System.Windows.Forms.Cursors.Hand;
    // 定义在窗体上,光标显示为手形
    this.Text = "透明的WinForm窗体!";
    // 定义窗体的标题名称
    this.StartPosition = System.Windows.Forms.FormStartPosition.
    CenterScreen;
    // 定义窗体的开始显示位置是屏幕的中间
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
    // 窗体的边界是Fixed3D类型
    this.ForeColor = System.Drawing.SystemColors.Desktop;
    //以桌面的前景色作为窗体的前景色
    this.Font = new System.Drawing.Font ( "宋体", 9 ) ;
    // 定义字体类型,大小
    this.BackColor = System.Drawing.Color.Blue;
    // 定义背景色为蓝色
    this.ClientSize = new System.Drawing.Size( 440 , 170 ) ;
    // 设置窗体的大小
    // Opacity属性设立窗体的透明程度,只对于视窗2000有效
    this.Opacity = 0.60 ;
    }
    }
    小结:
    以上的代码其实和第一个例子的代码有很多相似,只是在Form2 Class中多定义了
    一些属
    性。
    1)."this"关键字,我想大家都注意到了这个关键字,那么到底该如何理解他。举
    例如
    下:当我在自我介绍的时候(其实就是在定义我的属性),我会说"我的名字叫
    xx","我
    的年龄是xx","我的邮箱是xx"……你可能注意到"我的"这二个字,他就是指我本
    人--王
    天。同样的道理在程序设计中,"this"关键字就是指向一个秙ition.
    CenterScreen;
    // 定义窗体的开始显示位置是屏幕的中间
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
    // 窗体的边界是Fixed3D类型
    3).下面通过下表来具体说明一下在上面程序中设立的属性的具体含义。
    属性 描述
    Location 初始化WinForm的位置,就是当应用程序运行的时候,显示WinFrom的固
    定位置

    Cursor 当光标在WinForm上面的时候显示的光标状态
    Text 设定WinForm的标题
    StartPosition 这个属性有点类似于"Location"属性,"Location"属性定义的是
    WinFor
    m的绝对位置,而本属性定义的是WinForm的相对属性。本属性的值定义为
    "CenterScree
    n"、"Manual"、"WindoowsDefaultLocation"、"WindowsDefaultBounds"、
    "CenterPare
    nt"
    FormBorderStyle 定义窗体的边界的样式。通常设定为,"FixedSingle"、
    "Sizable"、
    "FixedDialog"、"FixedToolWindow"、"SizableToolWindow"
    ForeColor 定义窗体的前景色彩
    Font 定义放在WinForm上的字体的类型和大小
    BackColor 定义窗体的背景色彩
    ClientSize 定义WinForm的大小
    Opacity 这个属性是定义WinForm的透明程度,并且这个属性只能用在视窗2000。
    属性的
    区值0-1,代表从完全透明到不透明。
    四.做一个带一个组件的WinForm
    本例子主要是介绍如何在WinForm中加入一个组件。如果你想在窗体中加入任何组
    件,首
    先,你必须要初始化这个组件(见下面程序中初始化Label一样)。并且使用
    "Controls
    .Add"方法加入到窗体中,以下是程序运行的界面和源代码。
    源程序:three.cs
    using System ;
    using System.Windows.Forms ;
    using System.Drawing ;
    public class Form3 : Form

    {
    //定义一个标签
    private Label label1 ;
    public static void Main( )
    {
    Application.Run( new Form3( ) ) ;
    }
    // 构造
    public Form3( )
    {
    // 建立标签并且初始化
    this.label1 = new System.Windows.Forms.Label( ) ;
    //先继承一个Label 类
    label1.Location = new System.Drawing.Point( 24 , 16 ) ;
    //设定 Label的显示位置
    label1.Text = "这是一个WinForm中的标签";
    label1.Size = new System.Drawing.Size ( 200, 50 );
    //设定标签的大小
    label1.TabIndex = 0 ;
    label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
    // 设定标签的对齐方式
    this.Text = "在WinForm中加入一个标签!";
    this.StartPosition = System.Windows.Forms.FormStartPosition.
    CenterParent;
    this.AutoScaleBaseSize = new System.Drawing.Size( 8 , 16 ) ;
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
    // 设定窗体的边界类型
    this.ForeColor = System.Drawing.SystemColors.Desktop;
    this.Font = new System.Drawing.Font ("宋体", 10 , System.Drawing.
    FontStyle.B
    old ) ;
    // 设定字体、大小就字体的式样
    this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
    this.BackColor = System.Drawing.Color.Blue;
    // 设定背景色
    this.ClientSize = new System.Drawing.Size( 250 , 250 ) ;
    //把标签加到窗体中
    this.Controls.Add ( this.label1 ) ;
    }
    }
    五.总结
    以上是对用Visual C#开发WinForm应用程序进行了着重的介绍,由于在.Net  
    FrameWork
    Sdk中的System.Windows.Froms名称空间中封装了许多关于界面设计的Class(类)
    。本文
    只能通过介绍一个基本的类--Form来了解一下Visual C#的强大功能和.Net  
    Class Libr
    ary(类库)丰富的开发资源。通过本文也可以看出,要想充分利用Visual C#的强
    大功
    能,就必须了解并掌握.Net Class Library。也只有掌握了.Net Class Library,
    你所
    开发的.Net程序功能才会强大,生命力才更强。

    --
    我早已习惯无情的风雨
    但不能没有你……


    ※ 来源:·飘渺水云间 Freecity.dhs.org·[FROM: xixixi]

    --

    ※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.214.13]
    上一篇
    返回上一页
    回到目录
    回到页首
    下一篇


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/9 2:25:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/16 20:30:20

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms