Szukasz przykładów C#, które mogą pobrać nazwy tabel z określonej bazy danych na serwerze. Mam już poprawny ciąg połączenia, po prostu szukając właściwego sposobu dodawania nazw poszczególnych tabel do listy w celu późniejszego pobrania i manipulacji.Pobieranie listy tabel ze specyficznej bazy danych na serwerze C#
Odpowiedz
System.Data.SqlClient
ma co trzeba bez formalnego zapytania na sys.Tables (choć to jest to, czego używa w tle). Użyj metody GetSchema()
na obiekcie SqlConnection
i oznacz, że chcesz "Tabele" i wyśle ci obiekt DataTable
z powrotem z wierszem dla każdej tabeli. Wysyła nazwę bazy danych, nazwę schematu tabeli, nazwę tabeli i typ tabeli w każdym wierszu (w tej kolumnie). Kod będzie wyglądać następująco:
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;
}
}
myślę, że to SQL powinien zwrócić tabelę zawierającą tableNames w swojej DB:
SELECT * FROM information_schema.tables
Dla SQL Server 2005 i wyższa:
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...
}
}
}
}
Skoro masz już SqlConnection, dlaczego nie korzystać .GetSchema ("Stoły ")? –
Aby pobrać wszystkie zdefiniowane przez użytkownika tabelach z bazy danych (sqlserver), mamy do kwerendy katalogów systemowych.
SELECT Name from Sysobjects where xtype = 'u'
ta kwerenda zwróci wszystkie zdefiniowane przez użytkownika tabele w DataBase
to moje rozwiązanie:
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. Pobieranie listy plików bazy danych serwera SQL nieaktywnej
- 2. Pobieranie listy tabel w pliku MS Access
- 3. Pętla przez bazy danych na serwerze i aktualizacja danych
- 4. Pobieranie rozmiaru typu danych ze std :: type_info
- 5. Pobierz nazwy tabel z bazy danych
- 6. Pobieranie bazy danych z rozszerzeniami reaktywnymi
- 7. Pobieranie nazwy bazy danych z pliku bak
- 8. Serwer SQL Kopiowanie tabel z jednej bazy danych na inną
- 9. Czy możemy użyć sprzężenia dla dwóch różnych tabel bazy danych?
- 10. Pobieranie danych z bazy danych MS Access i wyświetlanie ich w polu listy
- 11. Kopia zapasowa bazy danych MySQL automatycznie na serwerze Windows
- 12. Oceń macierz na specyficznej subarray
- 13. zrzut mysql do pliku wyjściowego localhost ze zdalnej bazy danych
- 14. Ciągłe pobieranie danych z bazy danych za pomocą Java
- 15. Oczyszczanie agenta oczyszczania bazy danych i bazy danych
- 16. pobieranie danych z bazy danych jako json w rozruchu wiosennym
- 17. Pobieranie danych z bazy danych Firebase Realtime w systemie Android
- 18. Jak uzyskać wszystkie nazwy tabel z bazy danych?
- 19. Jak przedstawić projekt bazy danych?
- 20. Pobieranie obrazu z bazy danych za pomocą Linq do SQL
- 21. Normalizacja bazy danych MySQL
- 22. Czy SQLAlchemy może automatycznie tworzyć relacje ze schematu bazy danych?
- 23. Wybór z bazy danych na podstawie listy unikalnych par
- 24. Kolor tekstu specyficznej konsoli RGB C++
- 25. C# Pattern dla kodu klasy abstrakcyjnej specyficznej
- 26. Użyj danych freebase na serwerze lokalnym?
- 27. Dynamiczne tworzenie nowych modeli rekordów aktywnych i tabel bazy danych
- 28. Pobieranie zdjęć ze złomowaniem
- 29. Odrzucanie podłączonego użytkownika ze schematu bazy danych Oracle 10g
- 30. Projektowanie bazy danych?
Połączenie jest zawijane w bloku używanym, więc połączenie jest zamykane, gdy kod wychodzi z bloku. – Tim