zoukankan      html  css  js  c++  java
  • 获取Access数据里所有表的名称和表的字段

    -------------
    //获取Access数据库表名
            public void GetTableName()
            {
                    string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:信息技术考试成绩.mdb";
                    OleDbConnection conn = new OleDbConnection(connString);              

                    conn.Open();
                    DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

                    conn.Close();
                    int n = dt.Rows.Count;
                    string[] tableName = new string[n];
                    int m = dt.Columns.IndexOf("TABLE_NAME");
                    for (int i = 0; i < n; i++)
                    {
                        DataRow dr = dt.Rows[i];
                        tableName[i] = dr.ItemArray.GetValue(m).ToString();

                        this.cbxtable.Items.Add(tableName[i].ToString());
                    }
                    this.cbxtable.SelectedIndex = 0;

                                                            
              }

            /// <summary>
            /// 返回某一表的所有字段名
            /// </summary>
            public List<string> GetTableColumn(string tableName)
            {
                string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:信息技术考试.mdb";
                OleDbConnection conn = new OleDbConnection(connString);
                List<string> list = new List<string>();
                DataTable dt = new DataTable();
                try
                {
                    
                    conn.Open();
                    dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tableName, null });
                    int n = dt.Rows.Count;
                    string[] strTable = new string[n];
                    int m = dt.Columns.IndexOf("COLUMN_NAME");
                    for (int i = 0; i < n; i++)
                    {
                        DataRow dr = dt.Rows[i];
                        list.Add(dr.ItemArray.GetValue(m).ToString());
                    }
                    return list;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    conn.Close();
                }
            }
            private void button3_Click(object sender, EventArgs e)
            {

                string str = this.cbxtable.SelectedItem.ToString();
                {
                    List<string> lst = GetTableColumn(str);
                    listBox1.DataSource = lst;

                }

            }

  • 相关阅读:
    VC++使用socket进行TCP、UDP通信实例总结
    [Android Pro] 调用系统相机和图库,裁剪图片
    [Android Pro] 查看 keystore文件的签名信息 和 检查apk文件中的签名信息
    [Android 新特性] 谷歌发布Android Studio开发工具1.0正式版(组图) 2014-12-09 09:35:40
    [Android 新特性] 有史来最大改变 Android 5.0十大新特性
    [Android Pro] service中显示一个dialog 或者通过windowmanage显示view
    [Android Pro] 通过Android trace文件分析死锁ANR
    [Android Memory] Android 的 StrictMode
    [Android Memory] Android性能测试小工具Emmagee
    [Android Memory] Android内存管理、监测剖析
  • 原文地址:https://www.cnblogs.com/meimao5211/p/3293512.html
Copyright © 2011-2022 走看看