DataSet 和Adapter批量更新数据库
DataTable table = MyGrid.DataSource as DataTable; string Sql = @"select [name], age, sex, ramk, [int] from tPerson"; //创建适配器: //1.填充数据,[连接适配器自动管理] //2.一次性保存数据 using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr)) { //SqlCommandbuilder创建增删改操作,row行的改变触发事件。 using(SqlCommandBuilder scb = new SqlCommandBuilder(adp)) { DataSet ds = new DataSet(); adp.Update(table); } } DataSet的使用 class Program { public static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; static void Main(string[] args) { string Sql = "select * from tPerson"; using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr)) { DataSet ds = new DataSet(); adp.Fill(ds,"tPerson"); foreach(DataTable table in ds.Tables) { foreach(DataRow row in table.Rows) { Console.WriteLine(row[0]); } } } } } DataSet与DataTable的关系: private void button2_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); DataTable table = new DataTable("MyTable"); DataColumn colId = new DataColumn("ID",typeof(int)); DataColumn colName = new DataColumn("name", typeof(string)); DataColumn colAge = new DataColumn("age", typeof(int)); table.Columns.Add(colId); table.Columns.Add(colName); table.Columns.Add(colAge); DataRow row1 = table.NewRow(); row1[colId] = 1; row1[colName] = "张三"; row1[colAge] = 22; table.Rows.Add(row1); ds.Tables.Add(table); this.dataGridView1.DataSource = ds.Tables["MyTable"]; } //批量读取和增删改 namespace DateSet { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string connStr = @"Data Source=WJ7BBN8FSFEM17I\TESTDAT;Initial Catalog=Person;Integrated Security=True"; private void btnLoad_Click(object sender, EventArgs e) { string Sql = @"select [name], age, sex, ramk, [int] from tPerson"; using(SqlDataAdapter ap = new SqlDataAdapter(Sql,connStr)) { DataSet dataSet = new DataSet(); ap.Fill(dataSet,"tPerson"); this.MyGrid.DataSource = dataSet.Tables[0]; } } private void btnUpdate_Click(object sender, EventArgs e) { DataTable table = MyGrid.DataSource as DataTable; string Sql = @"select [name], age, sex, ramk, [int] from tPerson"; //创建适配器: //1.填充数据,[连接适配器自动管理] //2.一次性保存数据 using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr)) { //SqlCommandbuilder创建增删改操作,row行的改变触发事件。 using(SqlCommandBuilder scb = new SqlCommandBuilder(adp)) { DataSet ds = new DataSet(); adp.Update(table); } } } //单列更新,手动写command对象 private void button1_Click(object sender, EventArgs e) { DataTable table = MyGrid.DataSource as DataTable; string Sql = @"select [name], age, sex, ramk, [int] from tPerson"; //更新单行 using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr)) { string sql2 = "update tPerson set [age] = @age where [name] = @name"; adp.UpdateCommand = new SqlCommand(sql2, adp.SelectCommand.Connection); // adp.UpdateCommand.Connection = adp.SelectCommand.Connection; //adp.UpdateCommand.CommandText = sql2; adp.UpdateCommand.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 50, "name")); adp.UpdateCommand.Parameters.Add(new SqlParameter("@age", SqlDbType.NVarChar, 50, "age")); adp.Update(table); } } } }View Code 优质内容筛选与推荐>>