时间:2021-07-01 10:21:17 帮助过:15人阅读
C#代码:
public static void AdapterAndSqlCommand() { //第一步:获取数据库配置信息 String connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString(); //第二步:构建SqlCommand查询语句 SqlCommand command = new SqlCommand("select * from student;"); command.Connection = new SqlConnection(connStr); //第三步:创建SqlDataAdapter SqlDataAdapter adapter = new SqlDataAdapter(command); //第四步:创建DataSet和DataTable DataSet dataSet = new DataSet(); DataTable dataTable = new DataTable(); //第五步:填充数据 adapter.Fill(dataTable); dataSet.Tables.Add(dataTable); //修改第一行数据中的姓名为小红,并将其性别改为女 dataTable.Rows[0]["sname"] = "小红"; dataTable.Rows[0]["ssex"] = "女"; //删除第二行数据 dataTable.Rows[1].Delete(); //构建一个新的行,并添加到表中去 dataTable.Rows.Add(new object[] {"小明", 108, 18, "男" }); //创建SqlCommandBuilder对象,并绑定一个SqlDataAdapter对象 SqlCommandBuilder scb = new SqlCommandBuilder(adapter); //打印输出SqlCommandBuilder对象的增删改sql命令语句 Console.WriteLine("SqlCommandBuilder实例的Insert命令: " + scb.GetInsertCommand().CommandText); Console.WriteLine("SqlCommandBuilder实例的Delete命令: " + scb.GetDeleteCommand().CommandText); Console.WriteLine("SqlCommandBuilder实例的Update命令: " + scb.GetUpdateCommand().CommandText); //将有变动的行同步到数据库中 adapter.Update(dataTable.GetChanges()); //保存修改 dataTable.AcceptChanges(); //下面是一个遍历输出datatable中的数据 foreach (DataTable table in dataSet.Tables) { foreach(DataRow row in table.Rows) { Console.WriteLine(row[0] + ", " + row[1] + ", " + row[2] + ", " + row[3]); } } }
运行打印输出的结果如下:内存中数据变化符合预期
数据库中呢?
也是正常的,已经同步到了数据库中。修改了一个,删除了一个,新增了一个。
但是我们看那个控制台打印的sql命令,命令是对着的,但怎么还有局部变量,这些局部变量又是什么时候替换的呢?
SqlCommandBuilder类是如何构建T-Sql语句
标签:char manage key foreach targe color primary sql语句 const