读mdb数据库中的表,返回datatable;链接postgresql数据库,读取数据库中表

        public DataTable ReadMDB(string mdbFile,string tableName)
        {
            string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + mdbFile;
            OleDbConnection conn = new OleDbConnection(connStr);
            conn.Open();
            //[]符号是为了支持表明带有横线的情况
            string queryPiles = "select * from ["+ tableName+"]";
            OleDbCommand cmd = conn.CreateCommand();
            cmd.CommandText = queryPiles;
            OleDbDataReader oleReader = cmd.ExecuteReader();

            DataTable dt = new DataTable();
            int colSize = oleReader.FieldCount;
            for (int i = 0; i < colSize; i++)
            {
                DataColumn col = new DataColumn(oleReader.GetName(i));
                dt.Columns.Add(col);
            }
            DataRow dr;
            while (oleReader.Read())
            {
                dr = dt.NewRow();
                string colName;
                string colValue;
                for (int j = 0; j < colSize; j++)
                {
                    colName = oleReader.GetName(j);
                    colValue = oleReader[colName].ToString();
                    dr[colName] = colValue;
                }
                dt.Rows.Add(dr);
            }
            oleReader.Close();
            conn.Close();
            return dt;
        }


一言不合就上代码


2.链接postgresql数据库,读取数据库中表

        NpgsqlConnection conn;
        private void btn_connPostGIS_Click(object sender, EventArgs e)
        {
            string ip = tbx_ip.Text.Trim();
            string port = tbx_port.Text.Trim();
            string userName = tbx_user.Text.Trim();
            string pass = tbx_password.Text.Trim();
            string dbName = tbx_db.Text.Trim();
            if (ip == "" || port == "" || userName == "" || pass == "" || dbName == "")
            {
                MessageBox.Show("数据库连接信息不完整,请检查重新输入。");
                return;
            }
            //获取用户自定义的表
            string selectAllTabelStr = "SELECT tablename From pg_tables WHERE schemaname='public';";
            string connStr = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};",ip,port,userName,pass,dbName);
            conn = new NpgsqlConnection(connStr);
            conn.Open();
            NpgsqlDataAdapter pAdapter = new NpgsqlDataAdapter(selectAllTabelStr, conn);
            DataSet ds = new DataSet();
            pAdapter.Fill(ds);
            DataTable tableNames = ds.Tables[0];
            List<string> nameList = new List<string>();
            foreach (DataRow dr in tableNames.Rows)
            {
                nameList.Add(dr[0].ToString());
            }
            cbx_tableName.DataSource = nameList;
        }

        private void btn_OK_Click(object sender, EventArgs e)
        {
            if (conn == null) return;
            string tblName = cbx_tableName.Text;
            if (tblName == "")
            {
                MessageBox.Show("请选择用于建模的数据表.");
                return;
            }
            string selectDataStr = "SELECT * FROM " + tblName + ";";
            NpgsqlDataAdapter pAdapter = new NpgsqlDataAdapter(selectDataStr, conn);
            DataSet ds = new DataSet();
            pAdapter.Fill(ds);
            mTable = ds.Tables[0];
            conn.Close();
            this.DialogResult = DialogResult.OK;
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值