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

 我来答
du瓶邪
2015-06-16 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:3008万
展开全部

代码如下:

/// <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();
        }
    }
百度网友147e3a0
推荐于2016-03-19 · TA获得超过703个赞
知道小有建树答主
回答量:855
采纳率:100%
帮助的人:359万
展开全部
可以使用System.Data.OleDb.OleDbConnection连接Access数据库
然后通过conn.GetSchema读出你要的信息:
包括数据库的表名、字段名、类型
你的分太少了。小气
更多追问追答
追问
我知道是用conn.GetSchema读字段信息,可是我不知道具体怎么读啊,能否说具体点,谢谢!
追答
你的分太少了,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式