DataAdapter数据集DataSet和数据库的同步(3):使用CommandBuilder来更新数据集

/*--===------------------------------------------===---
CommandBuilder:
如果DataTable映射到单个数据库表或者从单个数据库表生成,
可以利用CommandBuilder对象自动生成DataAdapter的3个命令:
DeleteCommand, UpdateCommand, InsertCommand.

为了生成Insert,Update,Delete语句,CommandBuilder会自动
使用SelectCommand属性来检索所需的元数据集.
SelectComandText里面必须要有主键字段,否则无法Builder~!

            许明会    2007年12月22日 23:24:25
--===------------------------------------------===---
*/

using System;
using System.Data;
using System.Data.SqlClient;

namespace xumh
{
    
public class runMyApp
    
{
        
static void ShowTable(DataTable dataTable)
        
{
            
foreach(DataRow row in dataTable.Rows)
            
{
                
for(int i=0;i<dataTable.Columns.Count; i++)
                    Console.Write(
"{0}\t",row[i]);
                Console.WriteLine();
            }

        }


        
static void Main()
        
{
            SqlConnection cn 
= new SqlConnection(@"server=.; database=northwind; integrated security=true ");
            
//显示原始数据
            SqlDataAdapter da = new SqlDataAdapter("select employeeid,firstname,lastname,title from employees",cn);
            DataSet dsEmployees 
= new DataSet();
            da.Fill(dsEmployees);
            ShowTable(dsEmployees.Tables[
0]);
            
//更改数据
            Console.ReadLine();
            dsEmployees.Tables[
0].Rows[0]["FirstName"= "Nancy"//XuMinghui
            SqlCommandBuilder builder = new SqlCommandBuilder(da);//SqlCommandBuilder
            
//Console.WriteLine(da.UpdateCommand.CommandText);//查看自动生成的CommandText
            da.Update(dsEmployees);
            ShowTable(dsEmployees.Tables[
0]);
        }

    }
;
}
原文地址:https://www.cnblogs.com/flaaash/p/1011128.html