I am attempting to update a SQL Server table from a table in a disconnected dataset using an update command.
The stored procedure looks like:
The disconnected dataTable has two columns: Code and OfferID.
The update command definition looks like:
I have been accessing my changed rows using, for example:
My problem is, I don't know how to access the rows so I can set the value of cmd.Parameters[1] with the original value of Code.
I'd be most grateful for any help anyone can give me.
The stored procedure looks like:
Code:
CREATE PROCEDURE UpdateProduct
@OldCode nvarchar (20),
@NewCode nvarchar (20),
@OfferID int
AS
UPDATE Product
SET Code = @NewCode
WHERE Code = @OldCode AND OfferID = @OfferID
The disconnected dataTable has two columns: Code and OfferID.
The update command definition looks like:
Code:
SqlParameter parm;
SqlCommand cmd = new SqlCommand("UpdateProduct", cn);
cmd.CommandType = CommandType.StoredProcedure;
parm = new SqlParameter("@NewCode", SqlDbType.Nvarchar, 20);
parm.SourceColumn = "Code";
parm.SourceVersion = DataRowVersion.Current;
parm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(parm);
parm = new SqlParameter("@OldCode", SqlDbType.Nvarchar, 20);
parm.SourceColumn = "Code";
parm.SourceVersion = DataRowVersion.Original;
parm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(parm);
parm = new SqlParameter("@OfferID", SqlDbType.Nvarchar, 20);
parm.SourceColumn = "OfferID";
parm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(parm);
I have been accessing my changed rows using, for example:
Code:
DataRows[] rows = dataset.table.select("","",DataRowViewState.ModifiedCurrent);
foreach(DataRow row in rows)
{
cmd.Parameters[0].Value = row.ItemArray[0].ToString();
cmd.Parameters[1].Value = ???????
cmd.Parameters[2].Value = Convert.ToInt32(row.ItemArray[1]);
cmd.ExecuteNonQuery();
}
My problem is, I don't know how to access the rows so I can set the value of cmd.Parameters[1] with the original value of Code.
I'd be most grateful for any help anyone can give me.