未重新加载数据到datagridview的C#数据
当我点击未重新加载数据到datagridview的C#数据,c#,mysql,.net,winforms,datagridview,C#,Mysql,.net,Winforms,Datagridview,当我点击refresh按钮时,我试图将数据重新加载到datagridview,但点击后数据不会刷新。我正在使用MySQL数据库,当我启动程序时,我进入数据库管理器SQLYog并手动对该行进行更改。之后,我切换到我的应用程序,并按下刷新按钮,se的应用程序工作,但没有发生任何事情。我不知道我做错了什么,网格中的什么数据没有刷新 这是我的代码: class MainWindow : Form { private MySqlDataAdapter adapter; private My
refresh
按钮时,我试图将数据重新加载到datagridview
,但点击后数据不会刷新。我正在使用MySQL数据库,当我启动程序时,我进入数据库管理器SQLYog
并手动对该行进行更改。之后,我切换到我的应用程序,并按下刷新按钮,se的应用程序工作,但没有发生任何事情。我不知道我做错了什么,网格中的什么数据没有刷新
这是我的代码:
class MainWindow : Form
{
private MySqlDataAdapter adapter;
private MySqlCommandBuilder cmd;
private BindingSource bs = new BindingSource();
private DataGridView dataGridView1;
private DataTable dt = new DataTable();
// Constructor
public MainWindow()
{
this.InitializeComponent();
}
// Get data
public void GetData(string sql)
{
using (var conn = new MySqlConnection(Properties.Settings.Default.connString))
{
try
{
conn.Open();
adapter = new MySqlDataAdapter(sql, conn);
cmd = new MySqlCommandBuilder(adapter);
adapter.Fill(dt);
bs.DataSource = dt;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
// Load
private void MainWindow_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = bs;
GetData("SELECT * FROM grupe_artikala");
}
// Reload click
private void reload_Click(object sender, EventArgs e)
{
GetData(adapter.SelectCommand.CommandText);
}
}
试试这个:
class MainWindow : Form
{
private MySqlDataAdapter adapter;
private MySqlCommandBuilder cmd;
private BindingSource bs = new BindingSource();
private DataGridView dataGridView1;
private DataTable dt = new DataTable();
String sql = "SELECT * FROM grupe_artikala";
// Constructor
public MainWindow()
{
this.InitializeComponent();
}
// Get data
public void GetData(string sql)
{
using (var conn = new MySqlConnection(Properties.Settings.Default.connString))
{
try
{
conn.Open();
adapter = new MySqlDataAdapter(sql, conn);
cmd = new MySqlCommandBuilder(adapter);
adapter.Fill(dt);
bs.DataSource = dt;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
// Load
private void MainWindow_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = bs;
GetData(sql);
}
// Reload click
private void reload_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = null;
dataGridView1.DataSource = bs;
GetData(sql);
datagridview1.update();
datagridview1.refresh();
}
}
你应该写这个。这可能会解决你的问题
class MainWindow : Form
{
private MySqlDataAdapter adapter;
private MySqlCommandBuilder cmd;
private BindingSource bs = new BindingSource();
private DataGridView dataGridView1;
private DataTable dt = new DataTable();
// Constructor
public MainWindow()
{
this.InitializeComponent();
}
// Get data
public void GetData(string sql)
{
using (var conn = new MySqlConnection(Properties.Settings.Default.connString))
{
try
{
conn.Open();
adapter = new MySqlDataAdapter(sql, conn);
cmd = new MySqlCommandBuilder(adapter);
adapter.Fill(dt);
bs.DataSource = dt;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
// Load
private void MainWindow_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = bs;
String sql = "SELECT * FROM grupe_artikala";
}
// Reload click
private void reload_Click(object sender, EventArgs e)
{
GetData(sql);
}
}
这肯定会产生错误<代码>字符串sql无法在
重新加载\u单击事件上访问。加载表单时的输出是什么?你说的很糟糕。对不起,我不能接受回答“否”不起作用。再次,结果是一些。当我在数据库中编辑并按下重新加载按钮时,什么都没有发生@Ivan或者您可能需要在调用GetData方法之后使用以下语句:datagridview1.update()代码>datagridview1.refresh()
@Ivan i使用datagridviewNope的update和refresh方法编辑了代码,但代码再次不起作用。我不明白是什么happening@Ivan好的,我再次编辑了代码,请再试一次。我猜这是MySql的问题,我用MsSql检查了你的代码,工作正常。您说过您添加了带有SQLYog
的记录,SQLYog
和MySqlConnection
冲突吗?没有任何一种方法是完美的。但我不知道这是什么问题