⑴ java 中获得Access 数据库中的表名和表中的列名 及每个列的数据类型
代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class TestDemo {
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://数据库IP地址:3306/数据库名称";
String user = "数据库用户名";
String pass = "数据库用户密码";
conn = DriverManager.getConnection(url, user, pass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection conn = getConnection();
String sql = "select * from AccessType";
PreparedStatement stmt;
try {
stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData data = rs.getMetaData();
for (int i = 1; i <= data.getColumnCount(); i++) {
// 获得所有列的数目及实际列数
int columnCount = data.getColumnCount();
// 获得指定列的列名
String columnName = data.getColumnName(i);
// 获得指定列的列值
int columnType = data.getColumnType(i);
// 获得指定列的数据类型名
String columnTypeName = data.getColumnTypeName(i);
// 所在的Catalog名字
String catalogName = data.getCatalogName(i);
// 对应数据类型的类
String columnClassName = data.getColumnClassName(i);
// 在数据库中类型的最大字符个数
int columnDisplaySize = data.getColumnDisplaySize(i);
// 默认的列的标题
String columnLabel = data.getColumnLabel(i);
// 获得列的模式
String schemaName = data.getSchemaName(i);
// 某列类型的精确度(类型的长度)
int precision = data.getPrecision(i);
// 小数点后的位数
int scale = data.getScale(i);
// 获取某列对应的表名
String tableName = data.getTableName(i);
// 是否自动递增
boolean isAutoInctement = data.isAutoIncrement(i);
// 在数据库中是否为货币型
boolean isCurrency = data.isCurrency(i);
// 是否为空
int isNullable = data.isNullable(i);
// 是否为只读
boolean isReadOnly = data.isReadOnly(i);
// 能否出现在where中
boolean isSearchable = data.isSearchable(i);
System.out.println(columnCount);
System.out.println("获得列" + i + "的字段名称:" + columnName);
System.out.println("获得列" + i + "的类型,返回SqlType中的编号:"+ columnType);
System.out.println("获得列" + i + "的数据类型名:" + columnTypeName);
System.out.println("获得列" + i + "所在的Catalog名字:"+ catalogName);
System.out.println("获得列" + i + "对应数据类型的类:"+ columnClassName);
System.out.println("获得列" + i + "在数据库中类型的最大字符个数:"+ columnDisplaySize);
System.out.println("获得列" + i + "的默认的列的标题:" + columnLabel);
System.out.println("获得列" + i + "的模式:" + schemaName);
System.out.println("获得列" + i + "类型的精确度(类型的长度):" + precision);
System.out.println("获得列" + i + "小数点后的位数:" + scale);
System.out.println("获得列" + i + "对应的表名:" + tableName);
System.out.println("获得列" + i + "是否自动递增:" + isAutoInctement);
System.out.println("获得列" + i + "在数据库中是否为货币型:" + isCurrency);
System.out.println("获得列" + i + "是否为空:" + isNullable);
System.out.println("获得列" + i + "是否为只读:" + isReadOnly);
System.out.println("获得列" + i + "能否出现在where中:"+ isSearchable);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
⑵ VB.Net 如何获取Access数据库中的表名称
呵呵,刚刚做这个,就借花献佛了
/// <summary>
/// 获得当前Access数据库的表
/// </summary>
/// <param name="Source"></param>
/// <returns></returns>
public ArrayList DataScoreTableName(string Source)
{
ArrayList TableName = new ArrayList();
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Source;
OleDbConnection conn = new OleDbConnection(ConnectionString);
conn.Open();
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] { null, null, null, "TABLE"});
foreach (DataRow dr in schemaTable.Rows)
{
TableName.Add(dr["TABLE_NAME"]);
}
conn.Close();
return TableName;
}
⑶ 如何遍历出ACCESS数据库中的所有表的表名
importjava.sql.Connection;
importjava.sql.DatabaseMetaData;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;
publicclassDBaccess{
publicstaticvoidmain(Stringargs[])throwsException{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Stringdburl="jdbc:odbc:Driver={MicrosoftAccessDriver(*.mdb)};DBQ=d:\DBTest.mdb";//此为NO-DSN方式
Connectionconn=DriverManager.getConnection(dburl);
Statementstmt=conn.createStatement();
DatabaseMetaDatadbmd=conn.getMetaData();
ResultSetrs=dbmd.getTables(null,null,"%",null);
while(rs.next()){
System.out.println("table-name:"+rs.getString(3)+"<br>");
}
stmt.close();
conn.close();
}
}
⑷ access怎么修改表的名称
第一个,直接在Access重命名,在sheet1上右键-》重命名第二个,导入的时候命名,导入-》选择要导入的excel-》选择要导入的表-》第一行包含列标题(如果没有,可以不选)-》新表中-》-》编辑字段的名称(如果不再设置,直接按下一步)-》设置主键的,可以考虑怎么设置(如果不设置,直接按下一步)-》输入表的名称(如果不输,直接就是Access的名称)-》完成 如果用代码的,可以在导入的时候给个新表的名字就行了insert into [表名] select * from【Excel 的表】 也可以在导入后再改也行,用楼上的代码,不过要改一下才行
⑸ Access怎么修改数据库名称
方法如下:
1、打开要修改的数据库文件。
2、打开sql查询
3、在sql中输入修改语句。要用update这个语句。update语句的具体用法如下:
SQL Server UPDATE语句的语法如下:
update <table_name> set <column_name> = <value> where <search_condition>
下面是语法选项简介:
<table_name>表的名称。该表包含了要修改值的列
<column_name>要修改数据的列的名称
<value>要输入到列中的新值
<search_condition>这是UPDATE语句中最重要的部分。
通过指定一个好的搜索条件,你能够限定表内被修改的行数。如果你不指定搜索条件,SQLServer会用新值修改表内的所有行
4、修改完成后,关闭数据库文件即可。
⑹ 怎样更改ACCESS数据库里面所有表的名字,包括表,窗体,报表啥的。改了之前的会说找不到对象。
access2007,单击左上角的圆形图标,然后“access选项”,“当前数据库”,“显示窗体”,从中选择你一打开时要显示的窗体名称,当然你应该选择你要显示的主窗体,这样一打开就会出现你要的主窗体了。 至于“在主窗体中操作之后,应该弹出其他的窗体但是没有出现”,这就是你在编程设置中有问题了,没看到你的具体代码,我就不知道该怎么说了。
⑺ c# 获取access数据库所有的表名
//C#获取Access数据库中的所有表名和列名
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=E:\report20100819\report20100819.mdb"; OleDbConnection Conn = new OleDbConnection(ConnectionString); Conn.Open();DataTable shemaTable = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); foreach (DataRow dr in shemaTable.Rows) { Console.WriteLine(dr["TABLE_NAME"]); DataTable columnTable = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, dr["TABLE_NAME"].ToString(), null }); foreach (DataRow dr2 in columnTable.Rows) { Console.WriteLine(dr2["COLUMN_NAME"]); } } Conn.Close();
⑻ 如何查询一个ACCESS数据库中的表名和字段
数据库知识—SQL查询语句精华使用简要
一、 简单查询
简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
SELECT nickname,email
FROM testtable
WHERE name=张三
(一) 选择列表
选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列
例如,下面语句显示testtable表中所有列的数据:
SELECT *
FROM testtable
2、选择部分列并指定它们的显示次序
查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:
SELECT nickname,email
FROM testtable
3、更改列标题
在选择列表中,可重新指定列标题。定义格式为:
列标题=列名
列名 列标题
如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:
SELECT 昵称=nickname,电子邮件=email
FROM testtable
4、删除重复行
SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。
5、限制返回的行数
使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:
SELECT TOP 2 *
FROM testtable
SELECT TOP 20 PERCENT *
FROM testtable
(二)FROM子句
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:
SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid
在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
(二) FROM子句
FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:
SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid
在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
例如上面语句可用表的别名格式表示为:
SELECT username,b.cityid
FROM usertable a,citytable b
WHERE a.cityid=b.cityid
SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
例如:
SELECT a.au_fname+a.au_lname
FROM authors a,titleauthor ta
(SELECT title_id,title
FROM titles
WHERE ytd_sales>10000
) AS t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id
此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。
(三) 使用WHERE子句设置查询条件
WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:
SELECT *
FROM usertable
WHERE age>20
WHERE子句可包括各种条件运算符:
比较运算符(大小比较):>、>=、=、、!>、!=10 AND age、>=、、!。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
(二)外连接
内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:
SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username
下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:
SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username
(三)交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
⑼ access数据库怎么用sql语句更改表名
JET SQL 可以更改字段类型,无法更改字段名的,除非你连续使用几个JET SQL 先删除字段然后再插入字段,然后用UPDATE查询将保存再临时表的原字段数据恢复过来。
或者,直接用 ADOX 更改 TABLE 的 Columns(字段名) 对象的 NAME 属性即可。
Function Test()
ChangeTableFieldName_ADO "表1", "aa", "pic1"
End Function
Function ChangeTableFieldName_ADO(MyTableName As String, MyFieldName As String, strNewName As String)
'3个参数:
'MyTableName 字符串,表名
'MyFieldName 字符串,原来的字段名
'strNewName 字符串,新的字段名
'记得先引用 ADOX
Dim MyDB As New ADOX.Catalog
Dim MyTable As ADOX.Table
MyDB.ActiveConnection = CurrentProject.Connection
Set MyTable = MyDB.Tables(MyTableName)
MyTable.Columns(MyFieldName).Name = strNewName
End Function
⑽ vb获取access数据库表名
推荐两种方法给你,下面两个例子都可以将ACCESS数据库中的全部表名写入列表框,请更换为实际数据库路径名,供楼主参考
方法一
Private Sub Form_Load()
Dim cn As New ADODB.Connection '声明并实例化一个ADO连接对象
Dim cnStr As String '声明一个连接字符串变量
Dim rsSchema As New ADODB.Recordset '声明并实例化一个记录集对象
'设置连接当前目录下“MyAccess.mdb”之连接字符串
cnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MyAccess.mdb;Persist Security Info=False;"
cn.Open cnStr '打开与该数据库的连接
Set rsSchema = cn.OpenSchema(adSchemaTables) '打开数据库所有表记录集
'循环将所有表名逐个写入列表框
Do Until rsSchema.EOF
If rsSchema!TABLE_TYPE = "TABLE" Then
List1.AddItem rsSchema!TABLE_NAME
End If
rsSchema.MoveNext
Loop
rsSchema.Close '关闭记录集
Set rsSchema= Nothing '释放记录集对象
cn.Close '关闭连接
Set cn = Nothing '释放连接对象
End Sub
方法二(
ACCESS数据库系统表"MsysObjects"里存放着所有数据表的资料,但是其访问权限默认为不开放。如果不嫌设置ACCESS数据库系统表权限麻烦,下列VB代码可以直接读取"MsysObjects"里记载的已保存表名信息,并于窗体加载时将得到的全部表名写入列表框里。
首先要设置读取ACCESS数据库系统表"MsysObjects"的权限,方法如下:
打开ACCESS数据库-->菜单-->工具-->选项 打开选项对话框,于视图选项卡 勾选“系统对象”点击“确定”按钮;
跟着,菜单-->工具-->安全-->用户与组权限 打开“用户与组权限”对话框,于权限选项卡 选择 “管理员、"MsysObjects"表 于权限框勾选“读取数据”点击“确定”按钮。
***注意为了确保ACCESS数据库的安全,设置完权限后,应将系统对象重新隐藏。
菜单-->工具-->选项 打开选项对话框,于视图选项卡 取消勾选“系统对象”
点击“确定”按钮。
Private Sub Form_Load()
Dim cn As New ADODB.Connection '声明并实例化一个ADO连接对象
Dim cnStr As String '声明一个连接字符串变量
Dim rs As New ADODB.Recordset '声明并实例化一个记录集对象
Dim sqlStr As String '声明一个SQL查询字符串变量
'设置连接当前目录下“MyAccess.mdb”之连接字符串
cnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MyAccess.mdb;Persist Security Info=False;"
cn.Open cnStr '打开与该数据库的连接
rs.CursorLocation = adUseClient '设置为客户端游标
'设置查询表名列表之SQL语句
sqlStr = "select Name from MsysObjects where type=1 and Flags=0"
rs.Open sqlStr, cn '打开数据库表记录集
'因为直接读取“MsysObjects“得到的表名列表秩序混乱,故这里强制对表名进行排序
rs.Sort = "Name ASC"
'循环逐个将表名放置到列表框里
Do Until rs.EOF
List1.AddItem rs!Name
rs.MoveNext
Loop
rs.Close '关闭记录集
Set rs = Nothing '释放记录集对象
cn.Close '关闭连接
Set cn = Nothing '释放连接对象
End Sub
以上内容源自本人网络空间文章http://hi..com/tjrmgs/item/ca62e6386f9519c81a96965a