我有一個組合框,可以在其中顯示資料庫中表的所有名稱。現在我找不到通過在組合框中選擇表名來在資料網格視圖中顯示表的所有內容的方法。目前我有 2 個表,我可以通過在組合框中選擇它來進行選擇,并在資料網格視圖中顯示其值。
我想要實作的是,通過在組合框中選擇表名,我的資料網格視圖將根據我在組合框中選擇的表名來顯示表的值
這是我的代碼:
private void samples_Load(object sender, EventArgs e)
{
MySqlConnection con = new MySqlConnection(conn);
try
{
con.Open();
MySqlCommand sqlCmd = new MySqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "select table_name from information_schema.tables where table_schema = 'attenddb'";
MySqlDataAdapter sqlDataAdap = new MySqlDataAdapter(sqlCmd);
DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
comboBox1.DataSource = dtRecord;
comboBox1.DisplayMember = "TABLE_NAME";
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string query2 = "select table_name from ['" comboBox1.Text "']";
MySqlConnection con2 = new MySqlConnection(conn);
MySqlCommand com2 = new MySqlCommand(query2, con2);
MySqlDataAdapter myadapt = new MySqlDataAdapter();
myadapt.SelectCommand = com2;
DataTable dtable = new DataTable();
myadapt.Fill(dtable);
dataGridView1.DataSource = dtable;
}
catch
{
MessageBox.Show("Error Loading data");
}
}
uj5u.com熱心網友回復:
以下是您的代碼的一些問題:
- 我們可以使用 "select * from " comboBox1.Text; 從資料庫中獲取資料。
- 我們要訪問資料庫之前,必須先打開連接。
如果要在資料網格視圖中顯示資料,可以參考以下代碼:
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("table_name1");
comboBox1.Items.Add("table_name2");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string query2 = "select * from " comboBox1.Text;
MySqlConnection con2 = new MySqlConnection(conn);
con2.Open();
try
{
MySqlCommand com2 = new MySqlCommand(query2, con2);
MySqlDataAdapter myadapt = new MySqlDataAdapter();
myadapt.SelectCommand = com2;
DataTable dtable = new DataTable();
myadapt.Fill(dtable);
dataGridView1.DataSource = dtable;
}
catch
{
MessageBox.Show("Error Loading data");
}
finally
{
if (con2.State == ConnectionState.Open)
{
con2.Close();
}
}
}
uj5u.com熱心網友回復:
不要使用括號 [] 和單引號。
string query2 = "select columnname from " comboBox1.Text "";
uj5u.com熱心網友回復:
您必須*從所選表中選擇所有列。
string query2 = "select * from [" comboBox1.Text "]";
或使用字串插值:
string query2 = $"select * from [{comboBox1.Text}]";
而且,不要在表名周圍使用單引號(您已經有了方括號),因為您希望直接使用名稱而不是字串文字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/372027.html
標籤:C# mysql 视觉工作室 phpmyadmin
上一篇:如何獲取輸入并查看其是否在范圍內,如果不在范圍內,如何再次獲取數字?
下一篇:如何克隆一個物件?
