.net实现一个简单的通用查询数据、导出Excel的网页

背景:
临时提供一个简单的网页,供其他人浏览数据库(Oracel、MSSQL)的某些数据,并导出Excel。
支持在配置文件中随时添加或修改sql。

实现:
把sql语句等信息保存一个xml文件中,前端页面提供一个下拉框,可以选择不同类型的sql语句,查询结果(暂没分页需要)直接绑定到GridView。

开发环境:VS2015
NuGet引入库:NPOI、Oracle.ManagedDataAccess.Client

一、VS目录

├─App_Code
│      DataBase.cs    ---------数据库连接类
│      ExcelHelper.cs ---------导出Excel工具类
│      SqlEntity.cs     ---------sql语句的实体类
│      SqlEntityList.cs---------把sql.xml转化为实体类
│
├─App_Data
│      sql.xml    ---------sql语句
│
│  rpt.aspx      ---------前端查询页面
│  rpt.aspx.cs  ---------
│  Web.config ---------配置数据库连接信息

二、代码
1、Web.config

  <connectionStrings>
    <add name="OracleString" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=testdb)));Persist Security Info=True;User ID=dev;Password=123456" providerName="Oracle.ManagedDataAccess.Client"/>
    <add name="SqlServerString" connectionString="user id=sa; password=123456; database=test; server=localhost" providerName="System.Data.SqlClient"/>
  </connectionStrings>

2、DataBase.cs

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Configuration;

/// <summary>
/// DataBase 的摘要说明
/// </summary>
public class DataBase
{
    private DbConnection cnn;//抽象类型
    private DbCommand cmd;//抽象类型
    private DbProviderFactory provider;
    private string providerName;
   
    public DataBase(String connectionName)
    {
        providerName = WebConfigurationManager.ConnectionStrings[connectionName].ProviderName;
        provider = DbProviderFactories.GetFactory(providerName);
        cnn = provider.CreateConnection();
        cnn.ConnectionString = WebConfigurationManager.ConnectionStrings[connectionName].ConnectionString;
        cmd = provider.CreateCommand();
        cmd.Connection = cnn;
    }
    #region 执行不带参数的SQL语句
    /// <summary>
    /// 执行SQL语句,返回影响的记录数
    /// </summary>
    public int ExecuteSQL(string sql)
    {
        return ExecuteSQL(sql, null);
    }
    /// <summary>
    /// 执行多条SQL语句,实现数据库事务。
    /// </summary>
    public int ExecuteSqlTran(List<string> sqlList)
    {
        int count = -1;
        cnn.Open();
        DbTransaction tx = cnn.BeginTransaction();
        try
        {
            cmd.Transaction = tx;
            for (int n = 0; n < sqlList.Count; n++)
            {
                string strsql = sqlList[n].ToSt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值