用C# Builder建数据库应用程序

原创 2003年08月24日 16:57:00

作者:徐长友 主页:http://yousoft.hi.com.cn
本文主要介绍用C# Builder通过ODBC访问数据。并将数据导出到Excel,
下面以C# Builder Enterprise+Microsoft Access 2000+Microsoft Excel 2000为例。

1.建立数据库mydb,内建一表:联系人
联系人ID
名字
姓氏
地址
城市
省份

CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-23033473.gif

2.建立ODBC(mydb)

3.编写程序
点击菜单 File - New - C# Application,输入应用程序名称
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-23033477.gif
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-230334711.gif
如果还没有安装ODBC组件,你还需要装上它们。点击菜单Component - Installed .Net components,在Installed .Net components窗口中确定ODBC组件已经选上。确定后,看tool Palette上是否有ODBC几个组件在上面。图示
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-230334715.gif
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-230334719.gif

加上一个OdbcConnection和一个OdbcCommand
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-230334723.gif
选中odbcConnection1,在ConnectionString输入:DSN=mydb;Uid=admin;Pwd=;
选中odbcCommand1,Connection选择odbcConnection1,CommandText输入:select * from  联系人 
WinForm窗口加上两个Button和ListBox,其中ListBox的Dock设为Bottom
双击按钮,输入代码:

     listBox1.Items.Clear();
     odbcConnection1.Open();
     OdbcDataReader myreader=odbcCommand1.ExecuteReader();
     try{
    while (myreader.Read())
    {
    listBox1.Items.Add(myreader.GetString(0)+","+myreader.GetString(1)+" "+myreader.GetString(2));
    }

     }
     finally{
     myreader.Close();
     odbcConnection1.Close();
     }
对于.NET对ODBC的一些使用方法,可以查看帮助。上面写得很详细。
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-230334727.gif
通过Com组件来完成数据导出Excel:
为了在C#中使用Excel,我们要先做一点准备工作,在你的计算机中找到TlbImp和Excel9.olb,将他们复制到一个文件夹中,在DOS窗口中执行 TlbImp Excel9.olb,这时会产生以下三个文件:Excel.dll、Office.dll和VBIDE.dll。
通过菜单 project->Add reference ,弹出的对话框中选择COM imports,点击Browser按钮,选中前面生成的三个DLL文件,OK

导出代码如下:


    //创建一个Excel文件
     int i;
     Excel.Application myExcel = new Excel.Application ( ) 

     myExcel.Application.Workbooks.Add ( true ) 

     //让Excel文件可见

              myExcel.Visible=true;

              //第一行为报表名称

    myExcel.Cells[1,4]="联系人";
    myExcel.Cells[2,1]="联系人ID";
    myExcel.Cells[2,2]="名字";
    myExcel.Cells[2,3]="姓氏";
    myExcel.Cells[2,4]="地址";
    myExcel.Cells[2,5]="城市";
    myExcel.Cells[2,6]="省份";

     //逐行写入数据,

     listBox1.Items.Clear();
     odbcConnection1.Open();
     OdbcDataReader myreader=odbcCommand1.ExecuteReader();
     try{
    i=2;
    while (myreader.Read())
    {
    i=i+1;
    myExcel.Cells[i,1]=myreader.GetString(0);
    myExcel.Cells[i,2]=myreader.GetString(1);
    myExcel.Cells[i,3]=myreader.GetString(2);
    myExcel.Cells[i,4]=myreader.GetString(3);
    myExcel.Cells[i,5]=myreader.GetString(4);
    myExcel.Cells[i,6]=myreader.GetString(5);
    }

     }
     finally{
     myreader.Close();
     odbcConnection1.Close();
     }



程序完整的代码如下:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.Odbc;
using System.IO;
using System.Reflection;


namespace DBApp
{
 /// <summary>
 /// Summary description for WinForm.
 /// </summary>
 public class WinForm : System.Windows.Forms.Form
 {
  /// <summary>
  /// Required designer variable.
  /// </summary>
  private System.ComponentModel.Container components = null;
  private System.Data.Odbc.OdbcConnection odbcConnection1;
  private System.Data.Odbc.OdbcCommand odbcCommand1;
  private System.Windows.Forms.ListBox listBox1;
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.Button button2;

  public WinForm()
  {
   //
   // Required for Windows Form Designer support
   //
   InitializeComponent();

   //
   // TODO: Add any constructor code after InitializeComponent call
   //
  }

  /// <summary>
  /// Clean up any resources being used.
  /// </summary>
  protected override void Dispose (bool disposing)
  {
   if (disposing)
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose(disposing);
  }

  #region Windows Form Designer generated code
  /// <summary>
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// </summary>
  private void InitializeComponent()
  {
   this.odbcConnection1 = new System.Data.Odbc.OdbcConnection();
   this.listBox1 = new System.Windows.Forms.ListBox();
   this.button1 = new System.Windows.Forms.Button();
   this.odbcCommand1 = new System.Data.Odbc.OdbcCommand();
   this.button2 = new System.Windows.Forms.Button();
   this.SuspendLayout();
   // 
   // odbcConnection1
   // 
   this.odbcConnection1.ConnectionString = "DSN=mydb;Uid=admin;Pwd=;";
   // 
   // listBox1
   // 
   this.listBox1.Dock = System.Windows.Forms.DockStyle.Bottom;
   this.listBox1.ItemHeight = 12;
   this.listBox1.Location = new System.Drawing.Point(0, 53);
   this.listBox1.Name = "listBox1";
   this.listBox1.Size = new System.Drawing.Size(368, 184);
   this.listBox1.TabIndex = 0;
   // 
   // button1
   // 
   this.button1.Location = new System.Drawing.Point(16, 16);
   this.button1.Name = "button1";
   this.button1.TabIndex = 1;
   this.button1.Text = "查询";
   this.button1.Click += new System.EventHandler(this.button1_Click);
   // 
   // odbcCommand1
   // 
   this.odbcCommand1.CommandText = "select * from  联系人 ";
   this.odbcCommand1.Connection = this.odbcConnection1;
   // 
   // button2
   // 
   this.button2.Location = new System.Drawing.Point(245, 14);
   this.button2.Name = "button2";
   this.button2.TabIndex = 2;
   this.button2.Text = "导出";
   this.button2.Click += new System.EventHandler(this.button2_Click);
   // 
   // WinForm
   // 
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(368, 237);
   this.Controls.Add(this.button2);
   this.Controls.Add(this.button1);
   this.Controls.Add(this.listBox1);
   this.Name = "WinForm";
   this.Text = "WinForm";
   this.Load += new System.EventHandler(this.WinForm_Load);
   this.ResumeLayout(false);
  }
  #endregion

  /// <summary>
  /// The main entry point for the application.
  /// </summary>
  [STAThread]
  static void Main() 
  {
   Application.Run(new WinForm());
  }
  
  private void WinForm_Load(object sender, System.EventArgs e)
  {

  }
  
  private void button1_Click(object sender, System.EventArgs e)
  {
     listBox1.Items.Clear();
     odbcConnection1.Open();
     OdbcDataReader myreader=odbcCommand1.ExecuteReader();
     try{
    while (myreader.Read())
    {
    listBox1.Items.Add(myreader.GetString(0)+","+myreader.GetString(1)+" "+myreader.GetString(2));
    }

     }
     finally{
     myreader.Close();
     odbcConnection1.Close();
     }

  }
  
  private void button2_Click(object sender, System.EventArgs e)
  {
    //创建一个Excel文件
     int i;
     Excel.Application myExcel = new Excel.Application ( ) 

     myExcel.Application.Workbooks.Add ( true ) 

     //让Excel文件可见

              myExcel.Visible=true;

              //第一行为报表名称

    myExcel.Cells[1,4]="联系人";
    myExcel.Cells[2,1]="联系人ID";
    myExcel.Cells[2,2]="名字";
    myExcel.Cells[2,3]="姓氏";
    myExcel.Cells[2,4]="地址";
    myExcel.Cells[2,5]="城市";
    myExcel.Cells[2,6]="省份";

     //逐行写入数据,

     listBox1.Items.Clear();
     odbcConnection1.Open();
     OdbcDataReader myreader=odbcCommand1.ExecuteReader();
     try{
    i=2;
    while (myreader.Read())
    {
    i=i+1;
    myExcel.Cells[i,1]=myreader.GetString(0);
    myExcel.Cells[i,2]=myreader.GetString(1);
    myExcel.Cells[i,3]=myreader.GetString(2);
    myExcel.Cells[i,4]=myreader.GetString(3);
    myExcel.Cells[i,5]=myreader.GetString(4);
    myExcel.Cells[i,6]=myreader.GetString(5);
    }

     }
     finally{
     myreader.Close();
     odbcConnection1.Close();
     }

  }
 }
}

4.运行程序
按F9运行程序
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-230334731.gif
CSDN_Dev_Image_2003-8-23033471.gif[ 相关贴图 ]
CSDN_Dev_Image_2003-8-230334735.gif

示例代码:CSDN_Dev_Image_2003-8-230334737.gif[ 点击下载 ] 

用C# Builder建数据库应用程序

  • zgqtxwd
  • zgqtxwd
  • 2008年04月24日 15:38
  • 114

C# Builder建一个ASP.NET应用程序

导读:   一般网站建设通常要求开发人员做后台的程序设计,前面有专业的美工做界面设计。虽然有时候开发人员也会做些界面设计,但是通常都无法达到专业的要求。 在以前的ASP中,由于代码和HTML页面语言...
  • Ronbi
  • Ronbi
  • 2008年03月06日 15:34
  • 335

如何:创建 C# 控制台应用程序

本主题旨在生成最简单形式的 C# 程序(控制台应用程序)熟悉 Visual Studio 2008 开发环境。由于控制台应用程序是在命令行执行其所有的输入和输出,因此对于快速测试语言功能和编写命令行实...
  • FreeBot
  • FreeBot
  • 2009年04月25日 14:23
  • 13248

matlab虚拟现实之使用V-Realm Builder2建模

本文通过vrbuilder2制作一个圆和一个圆柱,并在软件中实现动画效果。 1、首先新建一个文件并保存。点击下图工具,设置背景——看起来舒服点。 2、点击工具栏中的Insert sphere,插入...
  • ckzhb
  • ckzhb
  • 2016年11月26日 22:09
  • 1536

如何使用C#创建一个三层的数据库应用程序

1.分析在我们这个程序中采用如下的层次:Web层,业务实体层,数据层。其中:业务实体层负责Web层与数据层之间的数据交换。数据层仅仅代表数据库。Web层通过业务实体层来访问数据库。我们的中间的业务实体...
  • xiaoxiaohai123
  • xiaoxiaohai123
  • 2007年05月11日 16:49
  • 932

C#类快速应用

自己感觉C#中的好多和JAVA中形式极其相似…… 类、对象的理解        现在在我的理解范围内,类就相当于车,车应该有尺寸,外观等等。当提到某一种具体的车,就相当于定义一个该类的对象,就...
  • Zach_Hao
  • Zach_Hao
  • 2017年09月26日 23:07
  • 34

用C++ Builder开发多层数据库应用程序

  继Client/Server结构在MRP、MIS等数据库应用系统红火之后,多层结构(Multi_Tier)开始登场。许多厂商提供了各种中间件,本文描述了用Borland C++ Builder(以...
  • Tunix126
  • Tunix126
  • 2006年10月15日 13:16
  • 621

使用 Flash Builder 打包 AIR 应用程序

将 Flex 项目更改为 Adobe AIR 项目 可以将 Flex 项目的应用程序类型从“Web(在 Adobe Flash Player 中运行)”更改为“桌面(在 Adobe AIR ...
  • wkyb608
  • wkyb608
  • 2011年11月11日 14:04
  • 1632

C#之二十一 创建MDI应用程序和组件开发

MDI应用程序介绍 在VC#中,MDI应用程序由两部分组成,即MDI父窗体和MDI子窗体。 一个MDI应用程序可以包含一个或多个MDI父窗体,每个MDI父窗体又可以包含多个MDI子...
  • zhangchen124
  • zhangchen124
  • 2016年05月03日 10:33
  • 3188

使用C# Builder建一个简单的ASP.NET应用程序

悠游在线(yousoft.hi.com.cn) 作者:徐长友  一般网站建设通常要求开发人员做后台的程序设计,前面有专业的美工做界面设计。虽然有时候开发人员也会做些界面设计,但是通常都无法达到专业的要...
  • yousoft
  • yousoft
  • 2003年07月23日 07:19
  • 1129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用C# Builder建数据库应用程序
举报原因:
原因补充:

(最多只允许输入30个字)