Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Changes To DataSet Not Being Saved
Message
 
À
01/10/2008 18:58:56
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Versions des environnements
Environment:
C# 2.0
OS:
Windows XP SP2
Network:
Windows 2008 Server
Database:
MS SQL Server
Divers
Thread ID:
01352069
Message ID:
01352283
Vues:
23
The EndEdit worked fine. Thanks Bonnie.

My data access class has this:
public bool UpdateDataSet(DataSet oDataSet, string sTableName)
{
	bool bRetVal = true;

	try
	{
		oAdapter.Update(oDataSet, sTableName);
	}
	catch(SqlException e)
	{
		oException = e;
		bRetVal = false;
	}
	return bRetVal;
}
Any reason why I shouldn't iterate through all the tables & rows and call EndEdit on each row here in this method? This would put it one place as opposed to all the different areas that work with DS's.

Maybe something like:
foreach(DataTable oTable in oDataSet.Tables)
{
	foreach(DataRow oRow in oTable.Rows)
	{
		oRow.EndEdit();
	}
}
>Kevin,
>
>Certain circumstances leaves a DataRow in a "Proposed" state ... which simply means that the data has not been "moved" into the "Current" state. You can see this if you check oRow.HasVersion(DataRowState.Proposed) ... it will be true. (I think that's the right syntax, this is off the top of my head).
>
>Anyway, in order to get it from the Proposed state, you need to Commit the Proposed changes. There are several ways to do this, but why don't you start out with this concept and see if it solves the problem, this seems to be the most foolproof methodology:
>
>
>		DataRow oRow = oDataSet.Tables[0].Rows[0].EndEdit();
>
>		oAdapter.Update(oDataSet, sTableName);
>
>
>~~Bonnie
>
>
>
>
>>I have the dataset bound to textboxes on the form:
>>
>>
>>txtTitle.DataBindings.Add("Text", oDataSet, "ItemRow.Title");
>>txtCategory.DataBindings.Add("Text", oDataSet, "ItemRow.Category");
>>txtAuthor.DataBindings.Add("Text", oDataSet, "ItemRow.Author");
>>txtCatNo.DataBindings.Add("Text", oDataSet, "ItemRow.Catalogue_No");
>>txtIsbn.DataBindings.Add("Text", oDataSet, "ItemRow.Isbn");
>>txtPublisher.DataBindings.Add("Text", oDataSet, "ItemRow.Publisher");
>>
>>
>>In SaveChanges I then pass the oDataSet variable to this code in my Data Access class:
>>
>>
>>public bool UpdateDataSet(DataSet oDataSet, string sTableName)
>>{
>>	bool bRetVal = true;
>>
>>	try
>>	{
>>		DataRow oRow = oDataSet.Tables[0].Rows[0];
>>		DataRowState state = oRow.RowState;                \\state = Unchanged
>>
>>		oAdapter.Update(oDataSet, sTableName);
>>	}
>>	catch(SqlException e)
>>	{
>>		oException = e;
>>		bRetVal = false;
>>	}
>>	return bRetVal;
>>}
>>
>>
>>
>>The DataAdapater is stored as oAdapter on the data access class. When I run this, it doesn't error, but it also doesn't save.
>>
>>Anyone wanna set a newbie straight?
Everything makes sense in someone's mind
public class SystemCrasher :ICrashable
In addition, an integer field is not for irrational people
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform