用ADO.NET进行数据库同步。
部分代码如下:SqlSyncAdapterBuilder builderCustomerPhone = new SqlSyncAdapterBuilder((SqlConnection)serverSybcOrivuder.Connection);            builderCustomerPhone.TableName = "dbo.CustomerPhone";
            builderCustomerPhone.SyncDirection = SyncDirection.Snapshot;            builderCustomerPhone.DataColumns.Add("CustomerId");
            builderCustomerPhone.DataColumns.Add("CustomerName");
            builderCustomerPhone.DataColumns.Add("PhoneNumber");
            builderCustomerPhone.DataColumns.Add("PhoneType");
            builderCustomerPhone.FilterClause = "PhoneNumber <> ''";            SyncAdapter customerPhoneSyncAdapter = builderCustomerPhone.ToSyncAdapter();
            customerPhoneSyncAdapter.TableName = "CustomerPhone";
            serverSybcOrivuder.SyncAdapters.Add(customerPhoneSyncAdapter);            SyncTable customerPhoneSyncTable = new SyncTable("CustomerPhone");
            customerPhoneSyncTable.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
            customerPhoneSyncTable.SyncDirection = SyncDirection.Snapshot;            syncAgent.Configuration.SyncTables.Add(customerPhoneSyncTable);我想知道有没有直接通过SQL语句来写的方法,不愿意通过一个一个列加进去。
还有就是如果将服务器的数据表和列同步到本地来,数据表和列进行改名。

解决方案 »

  1.   

    创建SyncAdapter。针对每一个需要同步的表,创建一个SyncAdapter。
    SyncAdapter syncAdapter = new SyncAdapter("customers");
    System.Data.SqlClient.SqlCommand selectIncInsertCmd = this.serverConn.CreateCommand();
    selectIncInsertCmd.CommandText = "select CustomerID,CompanyName,ContactName from customers";
    syncAdapter.SelectIncrementalInsertsCommand = selectIncInsertCmd;
    serverProvider.SyncAdapters.Add(syncAdapter); 
      

  2.   

    我试下。
    以前一直使用RDA通过IIS连接到数据库,但是用ADO.NET,如果要远程连接到SQL Server,那么是不是要把SQL Server放到网络是呢?这样对数据库的安全是不是影响很大?
      

  3.   

    不愿意这么繁琐地写很容易啊,那么叫做Linq to SQL。或者是Linq to ADO.NET。
      

  4.   

    例如可以参考:http://blog.entlib.com/entlibforum/archive/2008/11/01/ado.net-entity-framework-part-5.aspx