access数据库获取文件夹内所有文件名

access数据库获取文件夹内所有文件名,第1张

1.任意新建或找一个Access数据库文件data.mdb,这里我新建了一个data.mdb,这里有两个表User和Class。表结构如下图。

2.任意新建一个test.aspx测试页面,复制下面的内容:

protected void Page_Load(object sender, EventArgs e)

{

  // access连接字符串可以把路径当做变量

string sConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0Data Source=C:\Users\Administrator\Desktop\WebApplication2\WebApplication2\TempFile\data.mdbPersist Security Info=False"

// 数据源连接对象

OleDbConnection con = new OleDbConnection(sConnStr)

con.Open()

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

con.Close()

con.Dispose()

// 遍历所有的表

string sName = ""

for (int i = 0, maxI = dt.Rows.Counti <maxIi++)

{

// 获取第i个Access数据库中的表名

string sTempTableName = dt.Rows[i]["TABLE_NAME"].ToString()

sName += string.Format("{0}\n", sTempTableName)

}

Response.Write(sName)

}

3.浏览页面,页面中会输出表的名称,如下图,不过从输出的表名称可以看出,以【~】开头的表名,都不是真正的表,因此需要过滤掉这些表。

4.Access数据库文件的路径,可以当做一个变量,如果是处理客户端上传的文件,可以先保存到服务器上,然后获取Access数据库连接字符串,有关如何获取Access数据库字符串,可以看我的另外一篇文章【如何查找或记忆数据库连接字符串】。

5.获取到了表名称,可以使用select * from tableName,查出来DataTable数据,最后把Access数据库中所有表名和表数据添加到DataSet对象中。

1、可以的,这也是一个冷备份数据库和迁移数据库的方法,如果别人能复制整个data目录,确实不安全。

2、data下每个目录是一个database,比如mysql目录里面包含的系统表user.MYD包含了mysql用户信息

3、不同的存储引擎用的不同的文件存储数据,

a)如果是MyISAM存储引擎的一个table存成了三个文件

table.frm(表结构)

table.MYD(表数据)

table.MYI(表索引)

这种存储引擎你可以只复制一个table(即三个文件)或者一个数据库(即整个目录)。

b)如果是InnoDB存储引擎用到了表空间文件ibdata1

所以要复制需要包含数据库目录,还要包含表空间文件ibdata1等。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存