第一步:如何连接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