rendered paste body public int UpdateDataBaseTable(SQLTable dataTable, bool updateCommand) // updates table in database
{
if (dataTable.TableName == "Procedure")
dataTable.TableName = string.Format("[{0}]", dataTable.TableName);
int y = 0;
SqlCommandBuilder cb = new SqlCommandBuilder(dataTable.DataAdapter);
dataTable.DataAdapter.RowUpdated += new SqlRowUpdatedEventHandler(DataAdapter_RowUpdated);
dataTable.DataAdapter.RowUpdating += new SqlRowUpdatingEventHandler(DataAdapter_RowUpdating);
try
{
if (dataTable.PrimaryKey.Length != 0 && updateCommand)
{
cb.ConflictOption = ConflictOption.OverwriteChanges;
sqlCommand = cb.GetUpdateCommand(true);
if (sqlCommand != null)
{
sqlCommand = sqlCommand.Clone();
sqlCommand.CommandTimeout = Settings.Convert.Default.ConnectionTimeOut;
dataTable.DataAdapter.UpdateCommand = sqlCommand;
}
}
else if (updateCommand)
{
cb.ConflictOption = ConflictOption.CompareAllSearchableValues;
cb.SetAllValues = true;
cb.RefreshSchema();
sqlCommand = cb.GetUpdateCommand(); //GetUpdateCommand(true).Clone();
sqlCommand.CommandTimeout = Settings.Convert.Default.ConnectionTimeOut;
dataTable.DataAdapter.UpdateCommand = sqlCommand;
}
else
{
sqlCommand = cb.GetInsertCommand(true).Clone();
sqlCommand.CommandTimeout = Settings.Convert.Default.ConnectionTimeOut;
dataTable.DataAdapter.InsertCommand = sqlCommand;
}
DataTable newTable = dataTable.GetChanges();
if (newTable == null || newTable.Rows.Count == 0)
return 0;
y = dataTable.DataAdapter.Update(newTable);
}
catch (Exception e)
{
AddError(e.Message + "\n\t Table name: " + dataTable.TableName, true, Settings.ErrorLog.Default.ShowMessageBox);
return -1;
}
finally
{
con.Close();
}
return y;
}