⑴ 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