Привет, у меня есть следующий код, который отлично работает на моей машине, но когда я даю свой установочный набор на других машинах, приложение вылетает и выдает ошибку.
И функциональность, которую я пытаюсь реализовать, заключается в том, что я сохраняю схему и данные для нескольких таблиц в выходной папке, и если пользователь проверяет флажок Schema_checkbox, то файл резервной копии должен удалять строки до схемы и просто оставлять бит данных. Наконец, он будет содержать данные, но не схему. Этот бит работает нормально на моей машине, но не в службе поддержки, которая установила мой exe.
Мой код:
if (Schema_checkbox.Checked)
{
DisplayMainWindow("Schema not required selected");
Logger.Log("Schema not required selected " + DateTime.Now);
FileHelper.CopyFileContent(outputFileName);
DisplayMainWindow(" Only table data is backup excluding schema");
Logger.Log(" Only table data is backup excluding schema" + DateTime.Now);
}
public void CopyFileContent(string filePath)
{
try
{
StringBuilder sb = new StringBuilder();
string newText = null;
using (StreamReader tsr = new StreamReader(filePath))
{
do
{
string textLine = tsr.ReadLine() + "\r\n";
{
if (textLine.StartsWith("INSERT INTO"))
{
newText += textLine + Environment.NewLine;
}
}
}
while (tsr.Peek() != -1);
tsr.Close();
}
File.WriteAllText(filePath, newText);
}
catch (Exception ex)
{
Logger.Log("Exception" + ex);
MessageBox.Show("Error Occured" + ex);
}
}
Сообщение об ошибке:
27.09.2011 14:46:34 Начало поддержки Таблица данных
27.09.2011 14:46:54 Исключение: System.OutOfMemoryException:
Возникло исключение типа System.OutOfMemoryException.
в System.String.GetStringForStringBuilder (строковое значение, Int32
startIndex, длина Int32, емкость Int32)
at System.Text.StringBuilder.GetNewString (String currentString, Int32
requiredLength) в System.Text.StringBuilder.Append (строковое значение)
в ErikEJ.SqlCeScripting.Generator.GenerateTableContent (String tableName,
Boolean saveImageFiles)
в ErikEJ.SqlCeScripting.Generator.GenerateTableData (String tableName,
Boolean saveImageFiles)
в ErikEJ.SqlCeScripting.Generator.GenerateTableScript (String tableName,
String outputFolder, Boolean isBackupReq)
в ErikEJ.SqlCeScripting.Generator.GenerateSchemaGraph (String
connectionString, List`1 таблиц, String outputFolderPath, Boolean
isDataBackupReq)
at SqlDatabaseDataExport.MainForm.BackupScriptLocation ()