Я пытаюсь загрузить имена баз данных и их имена таблиц в Windows Forms.Как загрузить базу данных и имена ее таблиц в C#
Я использую этот код, чтобы получить имена серверов в системе
private void ServerName()
{
try
{
DataTable dt = SmoApplication.EnumAvailableSqlServers(true);
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
string serverName = dr[0].ToString();
if (!serverName.Contains("\\SQLEXPRESS"))
{
serverName = serverName + "\\SQLEXPRESS";
}
comboBox1.Items.Add(serverName);
}
comboBox1.Items.Add(@".\sqlexpress");
}
}
catch (Exception)
{
MessageBox.Show("Problem In Fetching Server Information.");
}
}
Я использую, чтобы загрузить базу данных имен этого конкретного сервера.
enter code here
private void DBnames()
{
server = comboBox1.SelectedItem.ToString();
database = "master";
con = new SqlConnection(@"Data Source=" + server + ";Initial Catalog=" + database + ";Integrated Security=True;");
con.Open();
da = new SqlDataAdapter("SELECT name FROM sys.databases", con);
ds = new DataSet();
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
comboBox2.Items.Add(ds.Tables[0].Rows[i][0]);
}
con.Close();
}
Теперь я хочу загрузить имена таблиц для этой базы данных
Я использую этот код
private void TBnames()
{
con.Open();
da = new SqlDataAdapter("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'",con);
ds = new DataSet();
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
comboBox3.Items.Add(ds.Tables[0].Rows[i][0]);
}
con.Close();
}
Но это не работает. Пожалуйста, помогите мне получить таблицы выбранной БД.
Заранее спасибо ..
Теперь я получил ответ ..
Просто измените код в TBnames:
private void TBnames()
{
con.Open();
string s = comboBox2.Text;
// MessageBox.Show(s);
cmd = new SqlCommand("Use " + s, con);
cmd.ExecuteNonQuery();
da = new SqlDataAdapter("SELECT * FROM sys.tables", con);
ds = new DataSet();
da.Fill(ds);
//dataGridView1.DataSource = ds.Tables[0];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
comboBox3.Items.Add(ds.Tables[0].Rows[i][0]);
}
con.Close();
}
Он работает ..
Что не работает? Получаете ли вы сообщение об ошибке? Исключение? Не возвращаете ли вы ожидаемые результаты (если вообще)? – Chris
Он показывает проекты баз данных. Теперь я меняю код и работаю. –