C#怎么获取access数据库中表的字段和字段的类型?

C#怎么获取access数据库中表的字段和字段的类型?,第1张

代码如下:

/// <summary>

    /// 取所有表名

    /// </summary>

    /// <returns></returns>

    public List<string> GetTableNameList()

    { 

        List<string> list = new List<string>()

        OleDbConnection Conn = new OleDbConnection(ConnStr)

        try

        {

            if (Conn.State == ConnectionState.Closed)

                Conn.Open()

            DataTable dt = Conn.GetSchema("Tables")

            foreach (DataRow row in dt.Rows)

            {

                if (row[3].ToString() == "TABLE")

                    list.Add(row[2].ToString())

            }

            return list

        }

        catch (Exception e)

        { throw e }

        finally { if (Conn.State == ConnectionState.Open) Conn.Close() Conn.Dispose() }

    }

 

    /// <summary>

    /// 取指定表所有字段名称

    /// </summary>

    /// <returns></returns>

    public List<string> GetTableFieldNameList(string TableName)

    {

        List<string> list = new List<string>()

        OleDbConnection Conn = new OleDbConnection(ConnStr)

        try

        {

            if (Conn.State == ConnectionState.Closed)

                Conn.Open()

            using (OleDbCommand cmd = new OleDbCommand())

            {

                cmd.CommandText = "SELECT TOP 1 * FROM [" + TableName + "]"

                cmd.Connection = Conn

                OleDbDataReader dr = cmd.ExecuteReader()

                for (int i = 0 i < dr.FieldCount i++)

                {

                    list.Add(dr.GetName(i))

                }

            }

            return list

        }

        catch (Exception e)

        { throw e }

        finally

        {

            if (Conn.State == ConnectionState.Open)

                Conn.Close()

            Conn.Dispose()

        }

    }

使用类似如下语句找出 某个表中 某个字段 在你的某条件下,为最大的一条记录:

1

2

3

4

SELECT MAX(字段) FORM 表格1 WHERE 你的条件

--或用下面查看这条记录里所有的字段的情况

SELECT * FORM 表格1 WHERE 字段 IN (SELECT MAX(字段) FORM 表格1 WHERE 你的条件)

至于 “及明细”,就不知道你是什么想法了,如果是所有记录,那就直接列出所有记录就好:

1

SELECT * FORM 表格1 WHERE 你的条件

如果是db2 的表名:

list tables

得到每一个表的详细信息字段名,字段属性(类型,文字长度,备注)

describe table 具体的表名

平时我就这么获得这些信息


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10830232.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存