i m new to C# and im trying to import a xml file from local disk and load all the elements into a sql table .. so here is my code and i keep gettin this error
Update Object must implement IConvertible
Code:
public static int LoadExternal(string Filename)
{
int Sflag = 0;
SqlConnection SecondSiteCon = new SqlConnection(GlobalConstants.SecondSiteConnectionString);
XmlDocument AccountHoldersxd = new XmlDocument();
XmlNode ndAccountHolders;
AccountHoldersxd.Load(Filename);
XPathNavigator nav;
ndAccountHolders = AccountHoldersxd["AccountHolders"];
nav = AccountHoldersxd.CreateNavigator();
nav.MoveToRoot();
nav.MoveToFirstChild();
try
{
SecondSiteCon.Open();
SqlCommand AddToDB = new SqlCommand("Exec AddNewAccountHolder @AccountHolder, @FirstName, @LastName, @Gender, @BirthDate, @CreditCardNumber, @ExpiryDate", SecondSiteCon);
AddToDB.Parameters.Add("@AccountNumber", SqlDbType.Int);
AddToDB.Parameters.Add("@FirstName", SqlDbType.VarChar);
AddToDB.Parameters.Add("@LastName", SqlDbType.VarChar);
AddToDB.Parameters.Add("@Gender", SqlDbType.Char);
AddToDB.Parameters.Add("@BirthDate", SqlDbType.DateTime);
AddToDB.Parameters.Add("@CreditCardNumber", SqlDbType.VarChar);
AddToDB.Parameters.Add("@ExpiryDate", SqlDbType.DateTime);
AddToDB.CommandType = CommandType.StoredProcedure;
AddToDB.Transaction = SecondSiteCon.BeginTransaction();
try
{
if (ndAccountHolders != null)
{
XmlNode ndAccountHolder;
ndAccountHolder = ndAccountHolders.FirstChild;
// foreach(XmlNode nd in ndAccountHolders.ChildNodes)
// {
// string mCreditCardNum;
// mCreditCardNum = nd["CreditCardNumber"].Value.ToString();
// string EncryptedCCNum;
// EncryptedCCNum = DESLibrary.ToBase64String(mCreditCardNum,"AABBCCDD");
while(ndAccountHolder != null)
{
AddToDB.Parameters["@AccountNumber"].Value = ndAccountHolder["AccountNumber"];
AddToDB.Parameters["@FirstName"].Value = ndAccountHolder["FirstName"];
AddToDB.Parameters["@LastName"].Value = ndAccountHolder["LastName"];
AddToDB.Parameters["@Gender"].Value = ndAccountHolder["Gender"];
AddToDB.Parameters["@BirthDate"].Value = ndAccountHolder["BirthDate"];
AddToDB.Parameters["@CreditCardNumber"].Value = ndAccountHolder["CreditCardNumber"];
AddToDB.Parameters["@ExpiryDate"].Value = ndAccountHolder["ExpiryDate"];
ndAccountHolder = ndAccountHolder.NextSibling;
AddToDB.ExecuteNonQuery();
AddToDB.Transaction.Commit();
}
// }
}
}
catch (Exception ex)
{
AddToDB.Transaction.Rollback();
throw ex;
}
}
finally
{
SecondSiteCon.Close();
}
return Sflag;
}