Click here to Skip to main content
15,884,628 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Sir i m Working on Desktop App i m new in this field So Task is Synchronized Database using .Sdf File To Sql Server Data base
it Working but some problem on it
it work only Same Machine local Database .sdf file To Server database but when i m using for Different marching(copy and Send .Sdf database file to other machine synchronize data) using Synchronized data it not work when i changing on .sdf file on Same time synchronize it work my code is
Data Store
in .sdf(Microsoft local Database) file but not synchronize on server database
plz help me
Sorry About poor English
C#
using Microsoft.Synchronization;
using Microsoft.Synchronization.Data;
using Microsoft.Synchronization.Data.SqlServerCe;
using Microsoft.Synchronization.Data.Server;
using System.Data.SqlServerCe;

SyncTable tableOrders = new SyncTable("Driver_Registration");
tableOrders.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
tableOrders.SyncDirection = SyncDirection.Bidirectional;
//tableOrders.SyncGroup.GroupName = ServerSyncProvider;
SyncTable tableOrderDetails = new SyncTable("Location");
tableOrderDetails.CreationOption = TableCreationOption.DropExistingOrCreateNewTable;
tableOrderDetails.SyncDirection = SyncDirection.Bidirectional;
SyncGroup orderGroup = new SyncGroup("AllChanges");
tableOrders.SyncGroup = orderGroup;
//tableOrderDetails.SyncGroup = orderGroup;
rb_refstockinentry.SyncGroup = orderGroup;
SqlSyncAdapterBuilder ordersBuilder = new SqlSyncAdapterBuilder();
ordersBuilder.Connection = serverConnection;
ordersBuilder.SyncDirection = SyncDirection.Bidirectional;

// base table
ordersBuilder.TableName = "Driver_Registration";
ordersBuilder.DataColumns.Add("id");
ordersBuilder.DataColumns.Add("fname");
ordersBuilder.DataColumns.Add("lname");
ordersBuilder.DataColumns.Add("mobile");
ordersBuilder.DataColumns.Add("Localadd");
ordersBuilder.DataColumns.Add("parmanetadd");
ordersBuilder.DataColumns.Add("state");
ordersBuilder.DataColumns.Add("city");
ordersBuilder.DataColumns.Add("locality");
ordersBuilder.DataColumns.Add("licenceno");
ordersBuilder.DataColumns.Add("vichical_no");
ordersBuilder.DataColumns.Add("photo");
ordersBuilder.DataColumns.Add("pan_no");
ordersBuilder.DataColumns.Add("create_timestamp");

//tombstone table
ordersBuilder.TombstoneTableName = "Driver_Registaration_tombstone";

ordersBuilder.TombstoneDataColumns.Add("id");
ordersBuilder.TombstoneDataColumns.Add("fname");
ordersBuilder.TombstoneDataColumns.Add("lname");
ordersBuilder.TombstoneDataColumns.Add("mobile");
ordersBuilder.TombstoneDataColumns.Add("Localadd");
ordersBuilder.TombstoneDataColumns.Add("parmanetadd");
ordersBuilder.TombstoneDataColumns.Add("state");
ordersBuilder.TombstoneDataColumns.Add("city");
ordersBuilder.TombstoneDataColumns.Add("locality");
ordersBuilder.TombstoneDataColumns.Add("licenceno");
ordersBuilder.TombstoneDataColumns.Add("vichical_no");
ordersBuilder.TombstoneDataColumns.Add("photo");
ordersBuilder.TombstoneDataColumns.Add("pan_no");
    // tracking\sync columns
ordersBuilder.CreationTrackingColumn = @"create_timestamp";
ordersBuilder.UpdateTrackingColumn = @"update_timestamp";
ordersBuilder.DeletionTrackingColumn = @"update_timestamp";
ordersBuilder.UpdateOriginatorIdColumn = @"update_originator_id";

SyncAdapter ordersSyncAdapter = ordersBuilder.ToSyncAdapter();
((SqlParameter)ordersSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_last_received_anchor"]).DbType = DbType.Binary;
((SqlParameter)ordersSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_new_received_anchor"]).DbType = DbType.Binary;
serverSyncProvider.SyncAdapters.Add(ordersSyncAdapter);


SqlSyncAdapterBuilder orderDetailsBuilder = new SqlSyncAdapterBuilder();
orderDetailsBuilder.SyncDirection = SyncDirection.Bidirectional;
orderDetailsBuilder.Connection = serverConnection;

// base table
orderDetailsBuilder.TableName = "Loction";
orderDetailsBuilder.DataColumns.Add("id");
orderDetailsBuilder.DataColumns.Add("location");
orderDetailsBuilder.DataColumns.Add("create_timestamp");
// tombstone table
orderDetailsBuilder.TombstoneTableName = "Location_tombstone";
orderDetailsBuilder.TombstoneDataColumns.Add("id");
orderDetailsBuilder.TombstoneDataColumns.Add("location");

// tracking\sync columns
orderDetailsBuilder.CreationTrackingColumn = @"create_timestamp";
orderDetailsBuilder.UpdateTrackingColumn = @"update_timestamp";
orderDetailsBuilder.DeletionTrackingColumn = @"update_timestamp";
orderDetailsBuilder.UpdateOriginatorIdColumn = @"update_originator_id";


SyncAdapter orderDetailsSyncAdapter = orderDetailsBuilder.ToSyncAdapter();
((SqlParameter)orderDetailsSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_last_received_anchor"]).DbType = DbType.Binary;
((SqlParameter)orderDetailsSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_new_received_anchor"]).DbType = DbType.Binary;
serverSyncProvider.SyncAdapters.Add(orderDetailsSyncAdapter);
SqlCommand anchorCmd = new SqlCommand();
Random rmd = new Random();

anchorCmd.CommandType = CommandType.Text;
anchorCmd.CommandText = "Select @" + SyncSession.SyncNewReceivedAnchor + "  =(@@dbts+(1))";  // for SQL Server 2005 SP2, use "min_active_rowversion() - 1"
anchorCmd.Parameters.Add("@" + SyncSession.SyncNewReceivedAnchor, SqlDbType.Timestamp).Direction = ParameterDirection.Output;

serverSyncProvider.SelectNewAnchorCommand = anchorCmd;

// client ID command (give the client id of 1)
// in remote server scenario (middle tear), this command will reference a local client table for the ID               
SqlCommand clientIdCmd = new SqlCommand();
clientIdCmd.CommandType = CommandType.Text;
clientIdCmd.CommandText = "SELECT @" + SyncSession.SyncOriginatorId + " = 1";
clientIdCmd.Parameters.Add("@" + SyncSession.SyncOriginatorId, SqlDbType.Int).Direction = ParameterDirection.Output;

serverSyncProvider.SelectClientIdCommand = clientIdCmd;
clientSyncProvider.SyncProgress += new EventHandler<syncprogresseventargs>(ShowProgress);
clientSyncProvider.ApplyChangeFailed += new EventHandler<applychangefailedeventargs>(ShowFailures);
serverSyncProvider.SyncProgress += new EventHandler<syncprogresseventargs>(ShowProgress);
Posted
Updated 21-May-15 21:28pm
v2
Comments
Member 10315500 22-May-15 3:38am    
Take Data Offline Using Microsoft Synchronization Services for ADO.NET[
This code with the help of
http://www.codeproject.com/Articles/18027/Take-Data-Offline-Using-Microsoft-Synchronization

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900