我正在从mysql表中填充网格视图
public void Init()
{
DataSet dataset = new DataSet();
dataset = FillGrid();
bindingSorce.DataSource = dataset.Tables[0];
gridControl1.DataSource = bindingSorce;
}
public static DataSet FillGrid()
{
MySqlConnection newConnection = new MySqlConnection(_connectionString);
try
{
DataSet dataset = new DataSet();
newConnection.Open();
if (newConnection.State.ToString() == "Open")
{
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = newConnection;
cmd.CommandText = "SELECT * FROM main";
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
adapter.Fill(dataset);
}
else
{
return null;
}
newConnection.Close();
return dataset;
}
catch { return null; }
}在所有更改之后,我正在尝试更新mysql表
private void gridView1_RowUpdated(object sender, EventArgs e)
{
try
{
BindingSource bs = (BindingSource)gridView1.DataSource;
DataTable changes = ((DataTable)bs.DataSource).GetChanges();
if (changes != null)
{
bool asd = UpdateGrid(changes);
((DataTable)((BindingSource)gridView1.DataSource).DataSource).AcceptChanges();
}
}
catch { }
}
public static bool UpdateGrid(DataTable datatable)
{
MySqlConnection newConnection = new MySqlConnection(_connectionString);
//try
{
newConnection.Open();
if (newConnection.State.ToString() == "Open")
{
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = newConnection;
cmd.CommandText = "SELECT * FROM main";
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
MySqlCommandBuilder cmb = new MySqlCommandBuilder(adapter);
//adapter.UpdateCommand = cmb.GetUpdateCommand();
//adapter.Update(datatable);
cmb.GetUpdateCommand();
adapter.Update(datatable);
}
else
{
return false;
}
newConnection.Close();
return true;
}
// catch { return false; }
}和表的真正更新,但如果在那之后我将调用Init(),那么FillGrid()将返回具有右侧列的dataset,但没有行!(dataset.tables.Rows.count= 0)。重新启动后,程序填充将工作正确,但再次更新将具有相同的效果
发布于 2014-03-10 23:09:30
在升级MySQL数据库版本后,我开始面临您在这里发布的相同问题。
我已经开发了一个C#应用程序,它查询MySQL数据库并使用MySqlDataAdapter Fill()方法填充几个数据网格。开发环境下的数据库版本为MySQL Server 5.1.38。当我在服务器上安装最终的数据库时,我使用的是相同版本的最新版本MySQL Server 5.1.73。
当我开始测试应用程序时,我开始遇到完全相同的问题:每当通过datagrid对数据进行任何更改时,数据库都会正确更新,但在那之后,应用程序中查询数据库的任何datagrid都会返回0行。
https://stackoverflow.com/questions/16867782
复制相似问题