簡體   English   中英

無法訪問數據庫(SQL Server CE / Windows Mobile 6.5)

[英]Unable to access database (SQL Server CE / Windows Mobile 6.5)

我正在為Windows Mobile 6.5設備創建一個應用程序,該應用程序的一部分應該在設備插入時復制SQL數據庫,在拔出設備時具有本地副本(因為沒有連接)。

因此,要擁有本地數據庫,我遵循了有關SQL Server CE的“羅斯文”教程 (帶有我自己的測試數據庫),但始終遇到設備無法連接到數據庫的問題。 我無法調試(因為每次都必須將該程序傳輸到設備以對其進行測試),但是我收到此錯誤消息(無論我嘗試使用的連接字符串如何):

SQL數據庫錯誤:未指定的錯誤[。\\ userdb.sdf]

我嘗試了多個連接字符串,如果使用設計器將數據源綁定到表單,我可以看到可以訪問數據庫。 但是我需要手動設置一些查詢,因為它們比僅填寫表單要復雜得多。

這是我的代碼,只應該填寫一個表格,但是下一步將是登錄/密碼檢查:

public partial class UserLogin : Form
{
    private SqlCeConnection _conn;

    public UserLogin()
    {
        InitializeComponent();

        _conn = new SqlCeConnection(@"Data Source=.\userdb.sdf;Password=PASSWORD;Persist Security Info=True");  
    }

    private void buttonCancel1_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void buttonLoad1_Click(object sender, EventArgs e)
    {
        try
        {
            SqlCeCommand cmd = new SqlCeCommand();
            cmd.Connection = _conn;
            cmd.CommandText = "SELECT userid, username, password FROM Users";

            _conn.Open();
            SqlCeResultSet resultSet = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);
            this.bindingSource1.DataSource = resultSet;

        }
        catch (SqlCeException sql_ex)
        {
            MessageBox.Show("SQL database error: " + sql_ex.Message);
        }
    }

我也嘗試了一些不同的方法,其中表單中填充了設計師的數據集,但仍然無法手動訪問數據庫: https : //pastebin.com/10P3wGeP

Windows Mobile既不知道驅動器號也不知道“當前”目錄。 這就是為什么“數據源=。\\ userdb.sdf”將始終失敗的原因。

在Windows Mobile上,您始終必須使用完整的限定路徑名來訪問文件。

您可以使用

 string path = System.IO.Path.GetDirectoryName( 
  System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );

獲取可執行文件啟動目錄的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM