0

我一直试图让我的查询运行一段时间,但它没有插入任何东西,也没有返回任何错误。

数据库连接已打开,连接成功。

该表称为错误日志并保存以下数据

- 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;
    }
4

1 回答 1

1
  1. 调试您的应用程序并查看是否connection准确指向您想要的数据库。还要检查您是否在同一数据库中查找插入的记录。
  2. 如果您connection属于该事务,请检查它是否已提交。在事务提交之前,您不会看到插入的这些记录。
  3. 在我看来,你INSERT错了。去掉周围的引号@exception
  4. 打开 SQL Server Profiler,连接到您的数据库并检查您是否INSERT出现在其中。
于 2012-12-15T19:54:28.347 回答