许明会的计算机技术主页

Language:C,C++,.NET Framework(C#)
Thinking:Design Pattern,Algorithm,WPF,Windows Internals
Database:SQLServer,Oracle,MySQL,PostSQL
IT:MCITP,Exchange,Lync,Virtualization,CCNP

导航

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]);
        }

    }
;
}

posted on 2007-12-23 00:19  许明会  阅读(617)  评论(0编辑  收藏  举报