方法一:用CommandBuilder
前提条件:
- DataGrid中的数据是从SQL数据库中获取的,而不是从其他地方导入的(具体原因不知);
- 它只能处理一个表;
- 底层数据库表必须有主键或唯一键;
- SqlAdapter的SelectCommand属性必须有一个包含主键列的查询;
string connString = @"Server=localhost\SQLEXPRESS;Database=StaffAdmin;Trusted_Connection=True;";
SqlConnection connection = new SqlConnection(connString); //创建数据库的SqlConnection
string sql = @"Select * from Staff";
SqlDataAdapter da = new SqlDataAdapter(); //创建SqlDataAdapter的实例da
da.SelectCommand = new SqlCommand(sql, connection); //设置da的SelectCommand的SQL query和SqlConnection
SqlCommandBuilder cb = new SqlCommandBuilder(da); //创建SqlCommandBuilder的实例cb,并设置其SqlDataAdapter为da
DataTable dt = new DataTable();
dt = ((DataView)StaffAdminView.ItemsSource).Table; //用dt获取DataGrid的table
da.Update(dt); //更新到数据库
总结:在DataGrid中插入,更改和删除数据,都可以通过此段代码更新到数据库,代码简单。
方法二:用SQL查询