无法连接到SQL Server CE数据库

时间:2013-05-21 13:17:40

标签: c# compact-framework sql-server-ce windows-ce

我有以下代码,只是为了测试连接:

public void Test()
{
    SqlCeConnection conn = new SqlCeConnection(@"Data Source=/Application/Database.sdf;");
    try
    {
        conn.Open();
        label1.text = "Connection!";
    }
    catch (Exception ee)
    {
        label1.text = "No connection!";
    }
}

尝试连接到此数据库时,应用程序会在conn.Open()

时抛出异常
  

SqlCeException未处理

仅此而已。异常消息是空白的,所以我很难搞清楚出了什么问题。

数据库文件在那里,应用程序返回true并带有

File.Exist(@"/Application/Database.sdf");

因此它可以访问该文件。

我可能在这里做了一些非常错误的事情,有人可以帮我解决这个问题吗?

我在Windows CE 5上使用Compact Framework 2.0,并且有问题的应用程序是现有的。我正在尝试向其添加数据库,以便我可以更轻松地加载大量数据。

1 个答案:

答案 0 :(得分:1)

Erik所说的是将代码更改为:

public void Test()
{
  SqlCeConnection conn = new SqlCeConnection(@"Data Source=/Application/Database.sdf;");
  try
  {
    conn.Open();
    label1.text = "Connection!";
  }
  catch (SqlCeException ee)  // <- Notice the use of SqlCeException to read your errors
  {
    SqlCeErrorCollection errorCollection = ee.Errors;

    StringBuilder bld = new StringBuilder();
    Exception inner = ee.InnerException;

    if (null != inner) 
    {
      MessageBox.Show("Inner Exception: " + inner.ToString());
    }
    // Enumerate the errors to a message box.
    foreach (SqlCeError err in errorCollection) 
    {
      bld.Append("\n Error Code: " + err.HResult.ToString("X")); 
      bld.Append("\n Message   : " + err.Message);
      bld.Append("\n Minor Err.: " + err.NativeError);
      bld.Append("\n Source    : " + err.Source);

      // Enumerate each numeric parameter for the error.
      foreach (int numPar in err.NumericErrorParameters) 
      {
        if (0 != numPar) bld.Append("\n Num. Par. : " + numPar);
      }

      // Enumerate each string parameter for the error.
      foreach (string errPar in err.ErrorParameters) 
      {
        if (String.Empty != errPar) bld.Append("\n Err. Par. : " + errPar);
      }

    }
    label1.text = bld.ToString();
    bld.Remove(0, bld.Length);
  }
}

您现在正在捕捉的通用Exception无法向您提供SqlCeException的详细信息。