views:

3768

answers:

2

I am trying to serialize an object to a sql compact database. I am using VCS Express 2008. Every time I run a test to see if my data is sent to the database, nothing is in the database. My code:

string inputForDB = null;
                QuizCategoryTableAdapter quizCategoryAdapter = new QuizCategoryTableAdapter();
                QuizApp._QuizApp_DataSet.QuizCategoryDataTable quizCategoryTable = new QuizApp._QuizApp_DataSet.QuizCategoryDataTable();
                quizCategoryAdapter.Fill(quizCategoryTable);
                //Check to see if quizCategory exists
                if (quizCategoryTable.Rows.Contains(quizCategory._categoryID)) {
                    //overwrite (update)
                    //Serialize the object and put in db
                    MemoryStream MemStream = new MemoryStream();
                    IFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(MemStream, quizCategory);
                    inputForDB = Convert.ToBase64String(MemStream.ToArray());
                    quizCategoryAdapter.Insert(quizCategory._categoryName, quizCategory._categoryDescription, inputForDB);
                    //send update to database
                    MemStream.Close();
                } else {
                    //append (insert)
                    MemoryStream MemStream2 = new MemoryStream();
                    IFormatter formatter2 = new BinaryFormatter();
                    formatter2.Serialize(MemStream2, quizCategory);
                    inputForDB = Convert.ToBase64String(MemStream2.ToArray());
                    quizCategoryAdapter.Insert(quizCategory._categoryName, quizCategory._categoryDescription, inputForDB);
                    MemStream2.Close();
                }

It compiles fine, but for some reason does not work.

A: 

You have to call the Adapter Update method as well as AcceptChanges on the DataSet

keithwarren7
Doesn't .net 3.5 have the update built into the tableAdapter?
jle
A: 

using VCS Express 2008

youtube