【C#】程序不用命令行更新MySQL数据库

①如果要更新MySQL的话,不能使用正常读取MySQL,那些写代码的话编辑datagrid会报错。


MySqlConnection con = new MySqlConnection(@"server=127.0.0.1;database=manage;username=root;password=root;Allow User Variables=True");
con.Open();
string sql = string.Format("select * from student");
MySqlCommand sCommand = new MySqlCommand(sql, con);
MySqlDataAdapter sAdapter = new MySqlDataAdapter(sCommand);
MySqlCommandBuilder sBuilder = new MySqlCommandBuilder(sAdapter);
DataSet sDs = new DataSet();
sAdapter.Fill(sDs, "student");
DataTable sTable = sDs.Tables["student"];
DataView dv = new DataView(sDs.Tables["student"]);
dygStudentList.ItemsSource = dv;


CSharpUpDataMySQL

②然后运行后发现哪怕没有设置datagrid的属性为IsReadyOnly=false也是可以编辑的,但是还不能实时更新到数据库,然后怎么做呢,我这个示例是用按钮来更新数据的。但是我为了更好的理解,然后将默认的IsReadyOnly设置为true,然后通过按钮来实现可编辑,然后编辑后如何更新呢,其实非常简单了。

因为上面跟下面是有关系的,所有sAdapter和sTable 是需要定义成全局变量,然后在更新的按钮点击事件后台代码为


private void datagrid1_CellEditEnding(object sender,System.Windows.Controls.DataGridCellEditEndingEventArgs e)
{
sAdapter.Update(sTable);
}

没错 只有一句就更新了,因为datagrid表格会自动生成行,也可以直接在最后面添加数据,删除的话需要自己去实现。


思路已经足够清晰了,如果我们设置了敲回车更新/编辑完更新/失去焦点更新,效果是不是更好呢,发挥自己的想象吧。

blank