![](/img/trans.png)
[英]Corrupted Database Sql Server CE (Windows Mobile CE 5.0)
[英]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.