Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C在MS Access中查找表#_C#_Ms Access - Fatal编程技术网

C# 使用C在MS Access中查找表#

C# 使用C在MS Access中查找表#,c#,ms-access,C#,Ms Access,是否可以使用c#确定特定数据库中MS Access中的表及其列 有谁能在这个问题上给我指点一下吗?对不起,SQL Server偏袒并在没有正确阅读您的问题的情况下发布了答案 下面是一个从MS Access数据库读取表名的示例。这是相同的想法,即查询数据库模式 片段 抱歉,SQL Server有偏见,并在没有正确阅读您的问题的情况下发布了该答案 下面是一个从MS Access数据库读取表名的示例。这是相同的想法,即查询数据库模式 片段 根据您连接ms access文件的方式,您可以通过不同的方式读

是否可以使用c#确定特定数据库中MS Access中的表及其列


有谁能在这个问题上给我指点一下吗?

对不起,SQL Server偏袒并在没有正确阅读您的问题的情况下发布了答案

下面是一个从MS Access数据库读取表名的示例。这是相同的想法,即查询数据库模式

片段


抱歉,SQL Server有偏见,并在没有正确阅读您的问题的情况下发布了该答案

下面是一个从MS Access数据库读取表名的示例。这是相同的想法,即查询数据库模式

片段


根据您连接ms access文件的方式,您可以通过不同的方式读取表格和列/字段名:

  • 使用OLEDB连接:您可以使用ADOX对象集合并读取数据库中可用的表、列、索引等
  • 通过ODBC连接,您可以列出MS-ACCESS系统表,在每个表上打开一个记录集,然后读取所有字段名。可以使用以下SQL指令列出表:

    从类型为1的MSysObjects中选择名称

  • 在所有情况下,一旦通过记录集打开表,就可以通过 在记录集对象的fields集合上循环


  • 根据您连接ms access文件的方式,您可以通过不同的方式读取表格和列/字段名:

  • 使用OLEDB连接:您可以使用ADOX对象集合并读取数据库中可用的表、列、索引等
  • 通过ODBC连接,您可以列出MS-ACCESS系统表,在每个表上打开一个记录集,然后读取所有字段名。可以使用以下SQL指令列出表:

    从类型为1的MSysObjects中选择名称

  • 在所有情况下,一旦通过记录集打开表,就可以通过 在记录集对象的fields集合上循环

  • String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=.\\Employee.mdb";
    OleDbConnection con = new OleDbConnection(connect);
    con.Open();  
    Console.WriteLine("Made the connection to the database");
    
    Console.WriteLine("Information for each table contains:");
    DataTable tables = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});
    
    foreach(DataRow tableRow in tables.Rows)
    {
        Console.WriteLine("Table Name: {0}", tableRow[0]);
        DataTable cols = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new Object[]{null,null, tableRow[0], null});
        foreach (DataRow colRow in cols.Rows)
        {
            Console.WriteLine("Column Name: {0}", colRow[0]);
        }
    }
    
    con.Close();