C#如何连接Oracle数据库,如何把数据绑定到dataGridView,如何把dataGridView数据导出到EXCEL

第一步:如何连接ORACLE数据库:

数据源是从Oracle的安装目录下tnsnames.ora文件中去找的。而并非是在系统的“管理工具”下的“数据源(ODBC)”中找。这个tnsnames.ora文件是在
Oracle的安装目下的“client_1/network/admin/”下

Oracle 连接字符串和 Oracle 名称解析是不可分的。假定我们在 tnsnames.ora 文件中定义了一个数据库别名 OraDb,如下: 
OraDb=
(DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521))
    )
    (CONNECT_DATA=
      (SERVER=DEDICATED)
      (SERVICE_NAME=ORCL)
    )
)

OraDb 别名定义客户端的数据库地址连接信息。要使用上面所述的在 tnsnames.ora 文件中定义的 OraDb 别名,您需要使用以下语法: 
string oradb = "Data Source=OraDb;User Id=scott;Password=tiger;"; // C#

==============================================
如果您想看到代码时一目了然,但是不嫌复杂的话,您可以修改连接字符串,这样就不需用 tnsnames.ora 文件。只需用在 tnsnames.ora 文件中定义别名的语句替换别名即可。 
// C#
string oradb = "Data Source=(DESCRIPTION="
             + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ORASRVR)(PORT=1521)))"
             + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));"
             + "User Id=scott;Password=tiger;";

。

然后创建对应的连接对象就行了
OracleConnection conn = new OracleConnection(oradb);
第二步:连接好数据库后开始查询了,并把查询好的数据绑定到DataTable里,最后把DataTable绑定到dataGridView
            //建立数ORACLE据库连接
	OracleConnection conn = new OracleConnection(oradb);
//
查询
      OracleDataAdapter oda = new OracleDataAdapter("select * from PRJFTRN", conn);
            DataTable dt = new DataTable();
//
数据绑定到DataTable里

    
      oda.Fill(dt);
// 
DataTable绑定到dataGridView
           this.dataGridView1.DataSource = dt;
效果图:

第三步:dataGridView数据导出到EXCEL
 private void ImportToExcel_Click(object sender, EventArgs e)
        {
            if (dataGridView1.RowCount ==0)
            {
                MessageBox.Show("记录为空,请重新查询!");
            
            }
            //建立Excel对象
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            excel.Application.Workbooks.Add(true);
            //生成字段名称
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;
            }
            //填充数据
            for (int i = 0; i < dataGridView1.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                {
                    if (dataGridView1[j, i].Value == typeof(string))
                    {
                        excel.Cells[i + 2, j + 1] = "" + dataGridView1[i, j].Value.ToString();
                    }
                    else
                    {
                        excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
                    }
                }
            }
            excel.Visible = true;
      }
效果图:

第四步:可能有人发现“Microsoft.Office.Interop.Excel”和“System.Data.OracleClient”没有,这个是需要导入的,在COMM组件里面,
首先添加一个模块ImportToExcel,并添加引用 然后导入命名空间: Imports Microsoft.Office.Interop Imports System.Data.SqlClien

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值