When I try to make a thread and put my code in it I get the following error...
The code snippet in your post is formatted incorrectly. Please use the Code button in the editor toolbar when posting whitespace-sensitive text or curly braces.
I've no idea what I'm doing wrong, I've posted code many times in the past.
(edit)
here is the code in question.
/// <summary>
/// Backs up a zipped folder to the database
/// </summary>
/// <param name="foldername">Name folder to backup</param>
/// <param name="path">Path to the temp zip file</param>
/// <param name="source">Path to the original folder location</param>
/// <returns>True if successful, false if not</returns>
private bool Backup(string foldername, string path, string source)
{
string hash = FileHash(path);
Debug.WriteLine("Backup");
Debug.WriteLine("foldername " + foldername);
Debug.WriteLine("path " + path);
Debug.WriteLine("source " + source);
Debug.WriteLine("hash " + hash);
SQLiteCommand cmd = new SQLiteCommand(db);
bool backupexists = TableExists(foldername);
Debug.WriteLine("Table exists " + backupexists.ToString());
cmd.CommandText = "CREATE TABLE IF NOT EXISTS " + foldername + "(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT"
+ ", data BLOB"
+ ", tempfile VARCHAR(2048)"
+ ", sourcepath VARCHAR(2048)"
+ ", hash VARCHAR(32)"
+ ", updated datetime);";
int rowsaffected = cmd.ExecuteNonQuery();
Debug.WriteLine("rows affected " + rowsaffected.ToString());
byte[] blob = null;
try
{
blob = File.ReadAllBytes(path);
}
catch (Exception ex)
{
cmd.Dispose();
MessageBox.Show("An error occurred reading file\nThe folder was not backed up\n error: " + ex.Message,
Properties.Settings.Default.AppName);
if (File.Exists(path))
{
File.Delete(path);
}
Debug.WriteLine("Fail ReadAllBytes");
this.Invoke(new Dummy(() => { Thread1Complete(); }));
return false;
}
DateTime date = DateTime.Now;
cmd.CommandText = "INSERT INTO " + foldername + "(data, tempfile, sourcepath, hash, updated) VALUES (@bin, @temp, @source, @hash, @updated)";
cmd.Prepare();
cmd.Parameters.Add("@bin", DbType.Binary, blob.Length).Value = blob;
cmd.Parameters.Add("@temp", DbType.String, path.Length).Value = path;
cmd.Parameters.Add("@source", DbType.String, source.Length).Value = source;
cmd.Parameters.Add("@hash", DbType.String, hash.Length).Value = hash;
cmd.Parameters.Add("@updated", DbType.DateTime).Value = date;
try
{
cmd.ExecuteNonQuery();
}
catch (SQLiteException ex) // <<<<<<<<<<<<<<< This exception occurs
{
Debug.WriteLine("Fail ExecuteNonQuery");
Debug.WriteLine(ex.ToString());
if (File.Exists(path))
{
File.Delete(path);
}
this.Invoke(new Dummy(() => { Thread1Complete(); }));
return false;
}
if (File.Exists(path))
{
File.Delete(path);
}
Debug.WriteLine("Win");
cmd.Dispose();
this.Invoke(new Dummy(() => { Thread1Complete(); }));
return true;
}
(edit2)
hmm. it's working here.