If you are generating the UpdateCommand by yourself i.e. without using a SqlCommandBuilder, make sure that you are also setting up the parameters and mapping them to the dataset. For e.g. you need to add the following code to Add the @CustomerID and @Orignal_CustomerID parameters to the command SqlParameter pcustID = new SqlParameter("@CustomerID",SqlDbType.Varchar,50,ParameterDirection.Input,fal se,0,0,"CustomerID",DataRowVersion.Current,null); SqlParameter porigCustID = new SqlParameter("@CustomerID",SqlDbType.Varchar,50,ParameterDirection.Input,fal se,0,0,"CustomerID",DataRowVersion.Orignal,null); dataadapter.UpdateCommand.Parameters.Add(pcustID); dataadapter.UpdateCommand.Parameters.Add(porigCustID); //Notice that the oringal_custID has DataRowVersion.Orignal whereas custID has DataRowVersion.Current, this is the key difference between the parameters. The two parameters are used for Optimistic concurrency checking. You will need to add all the parameters in the update command in a similar manner. -- Sijin Joseph http://www.indiangeek.net http://weblogs.asp.net/sjoseph |