我想现在把一个数据库文件的所有表,表名等都找出来了.现在我想在并不知道那张表有这个字段而搜索表中字段.
字段是已知的,如何搜索表中的字段?

解决方案 »

  1.   

    可以用select top 1 * from 表然后在ado里面 可以知道所有的字段名
      

  2.   

    ACCESS的不会
    不过你可以把ACCESS的转到SQL里面去
    然后http://blog.csdn.net/fredrickhu/archive/2009/09/20/4574197.aspx
      

  3.   


    楼上三位说的太离普了select * from information_schema.columns where table_schema='tt' and table_ 
    name='newtt' and column_name='列名'; 
      

  4.   

    ACCESS没有关于列的字典表。你只能通过ADO/DAO来用程序得到。http://blog.csdn.net/ACMAIN_CHM/archive/2008/12/24/3598577.aspx
    获取ACCESS表结构 
      

  5.   

    你更离普啊,人家说的是access
      

  6.   


    C#则更简单!using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.OleDb;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\access\xx.mdb;User Id=admin;Password=;";
                using (OleDbConnection connection = new OleDbConnection(connectionString))
                {
                    connection.Open();
                    DataTable schemaTable = connection.GetOleDbSchemaTable(
                        OleDbSchemaGuid.Columns,
                        new object[] { null, null, null, null });                foreach (DataRow row in schemaTable.Rows)
                    {
                        string queryString = "select top 1 1 from [" + row[2] + "] where [" + row[3] + "] like '%abc%'";
                        using (OleDbCommand command = new OleDbCommand(queryString, connection))
                        {
                            if(command.ExecuteScalar() != null)
                                Console.WriteLine("{0} - {1}", row[2], row[3]);
                        }
                    }
                }
                Console.Read();
            }
        }
    }