对比数据库和DBF文件中的列名

本文介绍了一个用于比较Oracle数据库表和DBF文件列名的小程序。通过查询Oracle的user_tab_cols获取表的列名,并在GridView中展示两者相同与不同的列名及其数量。程序帮助确保数据导出时列名的一致性。

1.已知Oracle数据库的某张表,现在要将这张表的数据导出到某个DBF文件中,但不知道数据的列和dbf文件的列名是否一致,所以做了个小程序进行比较。

需要了解的小知识点:

           如何查出Oracle中Table的列名:select column_name from user_tab_cols where table_name='TABLE  OR  VIEW  NAME'

           注意:这里的表名或视图名称必须大写

2.功能简介

           分别查出列名显示在GridView中,显示table和DBF文件相同和不同的列名及他们的个数

           

3.代码详解

           

 List dbfcolumnName = new List();
        List viewcolumnName = new List();
        private void BTNCompare_Click(object sender, EventArgs e)
        {
           
            int same = 0, view = 0, dbf = 0;
            StringBuilder diffviewcolumnName = new StringBuilder();
            StringBuilder diffdbfcolumnName = new StringBuilder();
            StringBuilder samecolumnName = new StringBuilder();
            for(int i= 0;i< viewcolumnName.Count;i++)
            {
                bool panduan = false;
                for (int j= 0;j
        /// 查询DBF文件的字段并显示
        /// 
        public void SelectDBFField()
        {
            FileInfo fi = new FileInfo(@"D:\DBF\mm.dbf");
            //FileInfo fi = new FileInfo(@"D:\DBF\mm.dbf");
            string mulu = fi.DirectoryName;
           
            string connstring = string.Format("Provider = Microsoft.Jet.OLEDB.4.0 ;Data Source ={0};Extended Properties=dBASE IV;", @"D:\DBF");
            var Connection = new OleDbConnection(connstring);

            OleDbCommand dc = new OleDbCommand("select * from mm.dbf", Connection);
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter();
            da.SelectCommand = dc;
            da.Fill(ds);
            DataTable ColumnList = new DataTable();
            ColumnList.Columns.Add();
            ColumnList.Columns["COLUMN1"].ColumnName = "COLUMN_NAME";
            foreach (DataColumn dcolum in ds.Tables[0].Columns)
            {
                ColumnList.Rows.Add(dcolum.ColumnName);
            }
        
            this.DGVDBField.DataSource = ColumnList;
            foreach (DataRow dr in ColumnList.Rows)
            {
                dbfcolumnName.Add(dr["COLUMN_NAME"].ToString());
            }

        }

        private void BTSelect_Click(object sender, EventArgs e)
        {
            SelectDBFField();
            SelectViewField();
        }

4.运行结果
          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值