尋找一些C#示例,可以從服務器上的特定數據庫檢索表的名稱。我已經有了一個有效的連接字符串,只是尋找將每個表的名稱添加到List中的正確方法,以供以後檢索和操作。從服務器C上的特定數據庫檢索表的列表#
12
A
回答
25
System.Data.SqlClient
有你需要什麼沒有一個正式的查詢上sys.Tables(儘管這是它在後臺使用的)。在SqlConnection
對象上使用GetSchema()
方法,並指定您需要「表格」,它將向您發送一個DataTable
對象,併爲每個表格返回一行。它在每一行(以該列順序)發回數據庫名稱,表格模式名稱,表格名稱和表格類型。該代碼是這樣的:
public static List<string> GetTables(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
DataTable schema = connection.GetSchema("Tables");
List<string> TableNames = new List<string>();
foreach (DataRow row in schema.Rows)
{
TableNames.Add(row[2].ToString());
}
return TableNames;
}
}
1
我認爲這個SQL應該返回包含在你的數據庫表名的表:
SELECT * FROM information_schema.tables
4
對於SQL Server 2005及更高版本:
using (SqlConnection connection = new SqlConnection(@"Data Source=(local);Integrated Security=True;Initial Catalog=DB_Name;")) {
connection.Open();
using (SqlCommand command = connection.CreateCommand()) {
command.CommandText =
@"SELECT s.name, o.name
FROM sys.objects o WITH(NOLOCK)
JOIN sys.schemas s WITH(NOLOCK)
ON o.schema_id = s.schema_id
WHERE o.is_ms_shipped = 0 AND RTRIM(o.type) = 'U'
ORDER BY s.name ASC, o.name ASC";
using (SqlDataReader reader = command.ExecuteReader()) {
while (reader.Read()) {
string schemaName = reader.GetString(0);
string tableName = reader.GetString(1);
// your code goes here...
}
}
}
}
+0
既然你已經關閉SqlConnection已經,爲什麼不使用.GetSchema(「表「)? –
2
要提取數據庫(SQLSERVER)中的所有用戶定義的表,我們必須查詢系統目錄。
SELECT Name from Sysobjects where xtype = 'u'
此查詢將返回所有用戶定義的表中的數據庫
0
這是我的解決方案:
public void opencon()
{
if (conn == null)
{
conn = new SqlConnection(@"Your connection");
}
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
public void Closecon()
{
if ((conn != null) && (conn.State == ConnectionState.Open))
{
conn.Close();
}
}
public void GetTables(ComboBox cb)
{
chuoiketnoi();
DataTable schema = conn.GetSchema("Tables");
foreach (DataRow row in schema.Rows)
{
cb.Items.Add(row[2].ToString());
}
dongketnoi();
}
相關問題
- 1. 如何檢索C#中指定服務器上的數據庫列表?
- 2. 從列表視圖上的數據庫檢索數據點擊
- 3. 從C#中的FTP服務器中檢索文件列表
- 4. smartGWT:從服務器檢索數據以填充列表GridGrid
- 5. 檢索在服務器上運行的服務列表vb.net
- 6. 檢索特定的列從表
- 7. 從IBM Worklight中的服務器數據庫中檢索數據
- 8. 檢索脫機的SQL服務器數據庫的文件列表
- 9. 從數據庫表的一列中檢索到excel的數據
- 10. 在CNIC的基礎上檢索兩個數據庫表中的特定數據
- 11. 使用SMO檢索SQL服務器,數據庫,表信息
- 12. VB.NET ASP.NET檢索列表的數據庫
- 13. 從數據表C獲取特定列#
- 14. 從數據庫表中檢索主鍵,標識列和特定名稱列
- 15. 從數據庫檢索特定值php
- 16. 從服務器獲取所有數據庫的列表
- 17. Android - 從數據庫服務器檢索圖像和數據
- 18. 從SQLite數據庫的列表視圖中檢索數據
- 19. 從數據庫檢索的數據生成列表視圖
- 20. 檢索從數據庫中的數據作爲一個列表
- 21. SQL服務器 - 加密數據庫中的表的列數據
- 22. 從項目服務器字段檢索數據到任務列表中
- 23. 如何檢索其他服務器上的數據庫
- 24. 通過Android上的服務從數據庫檢索JSON
- 25. SQL服務器從表中檢索數據
- 26. 從SQLite數據庫檢索特定的列
- 27. 從sqllite數據庫檢索特定行列的視頻uri
- 28. 如何從表上的特定列鏈接到數據庫中另一個表上的另一個特定列?
- 29. 從服務器檢索數據
- 30. 如何從服務器檢索數據
連接被封裝在使用塊中,所以一旦代碼退出塊,連接就會關閉。 – Tim