
代码如下:
/// <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()
}
}
使用类似如下语句找出 某个表中 某个字段 在你的某条件下,为最大的一条记录:1
2
3
4
SELECT MAX(字段) FORM 表格1 WHERE 你的条件
--或用下面查看这条记录里所有的字段的情况
SELECT * FORM 表格1 WHERE 字段 IN (SELECT MAX(字段) FORM 表格1 WHERE 你的条件)
至于 “及明细”,就不知道你是什么想法了,如果是所有记录,那就直接列出所有记录就好:
1
SELECT * FORM 表格1 WHERE 你的条件
如果是db2 的表名:list tables
得到每一个表的详细信息字段名,字段属性(类型,文字长度,备注)
describe table 具体的表名
平时我就这么获得这些信息
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)