查询access数据库表中的字段

jiejie526 2009-11-17 04:52:05
我想现在把一个数据库文件的所有表,表名等都找出来了.现在我想在并不知道那张表有这个字段而搜索表中字段.


字段是已知的,

如何搜索表中的字段?
...全文
166 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiejie526 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 acmain_chm 的回复:]
#7楼 jiejie526C#语言

C#则更简单!

C# codeusing System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.OleDb;namespace ConsoleApplication1
{class Program
{staticvoid 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,newobject[] {null,null,null,null });foreach (DataRow rowin 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();
}
}
}
[/Quote]


高手,
我想根据两个条件查出来这两列的列名,如何做呀!
chuifengde 2009-11-25
  • 打赏
  • 举报
回复
靠,被楼主忽悠了
chuifengde 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiejie526 的回复:]
引用 3 楼 chuifengde 的回复:
ado的openschema


楼上三位说的太离普了

select * from information_schema.columns where table_schema='tt' and table_
name='newtt' and column_name='列名';
[/Quote]
你更离普啊,人家说的是access
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
ACCESS没有关于列的字典表。你只能通过ADO/DAO来用程序得到。

http://blog.csdn.net/ACMAIN_CHM/archive/2008/12/24/3598577.aspx
获取ACCESS表结构
icelovey 2009-11-25
  • 打赏
  • 举报
回复
友情帮顶!
ACMAIN_CHM 2009-11-25
  • 打赏
  • 举报
回复
[Quote= #7楼 jiejie526 ]C#语言[/Quote]

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();
}
}
}
jiejie526 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chuifengde 的回复:]
ado的openschema
[/Quote]

楼上三位说的太离普了

select * from information_schema.columns where table_schema='tt' and table_
name='newtt' and column_name='列名';
chuifengde 2009-11-17
  • 打赏
  • 举报
回复
ado的openschema
--小F-- 2009-11-17
  • 打赏
  • 举报
回复
ACCESS的不会
不过你可以把ACCESS的转到SQL里面去
然后http://blog.csdn.net/fredrickhu/archive/2009/09/20/4574197.aspx
十一文 2009-11-17
  • 打赏
  • 举报
回复
可以用select top 1 * from 表

然后在ado里面 可以知道所有的字段名

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧