クエリを実行するまでしばらくの間、クエリを機能させようとしましたが、何も挿入されず、エラーも返されません。
データベース接続が開いており、正常に接続されています。
このテーブルはエラーログと呼ばれ、次のデータを保持します
- id (int autoincremental, Primary key, Unique)
- exception (varchar)
- time (DateTime)
exception = String(error message)
time = DateTime.Now
コードは次のとおりです。
public void insertError(string error, DateTime time)
{
SqlCeParameter[] sqlParams = new SqlCeParameter[]
{
new SqlCeParameter("@exception", error),
new SqlCeParameter("@time", time)
};
try
{
cmd = new SqlCeCommand();
cmd.Connection = connection;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "INSERT INTO errorlog (exception, time) VALUES(@exception, @time)";
cmd.Parameters.AddRange(sqlParams);
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
助けていただければ幸いです、よろしくお願いします。
編集 @exceptionの周りの引用符を削除しました
ここに接続があります:
protected DataController()
{
try
{
string appPath = System.IO.Path.GetDirectoryName(Assembly.GetAssembly(typeof(DataController)).CodeBase).Replace(@"file:\", "") + @"\";
string strCon = @"Data Source = " + appPath + @"Data\EasyShop.sdf";
connection = new SqlCeConnection(strCon);
}
catch (Exception e)
{
}
connection.Open();
}
最後にそれが呼ばれる方法:
public bool log(string msg, bool timestamp = true)
{
DataController dc = DataController.Instance();
dc.insertError(msg, DateTime.Today);
return true;
}