【发布时间】:2014-08-17 13:33:34
【问题描述】:
我的 Windows Phone 应用程序有问题(我在开发 C# WP8 应用程序方面没有经验:/)。我试图在stackoverflow中找到解决方案,但还没有找到正确的答案。
所以,这里是对问题的简短回顾:
我在代码中做一些 SQL 工作,完成后,用户会得到一个结果列表。到目前为止还不错,但是有些查询需要更多时间,并且用户没有得到像“请稍候”这样的响应。我尝试实现它,但它不起作用。
我做了什么?
在主方法“MainPage()”中 我使用以下方式启动 SQLiteConnection:
public SQLiteConnection conn = new SQLiteConnection(DB_PATH);
用户进行输入并按下按钮开始搜索(sql 查询)。 通过按下按钮触发的方法称为“ButtonSearch_Click”。我在这个方法中做的第一件事是设置一个可见的进度条,上面写着“请稍候”:
Progressbar.Visibility = Visibility.Visible;
PleaseWaitBlock.Text = "please wait...";
在此之后,我对用户的输入进行了一些工作,这在这种情况下并不是真正必要的。然后我创建一个 sqlCommand 对象:
SQLiteCommand sqlComm = new SQLiteCommand(conn);
并使用 CommandText 方法输入查询,例如:
sqlComm.CommandText = "SELECT * FROM abc WHERE (column_1 LIKE '" + input + "%')";
注意:“输入”是用户的输入。
现在我通过以下方式执行查询:
var queryname = sqlComm.ExecuteQuery<table>();
然后我循环查询名称:
foreach (var item in queryname)
{
// I do some work here
}
然后我让结果框可见以显示结果:
resultbox.Visibility = Visibility.Visible;
就是这样。问题是进度条不会以这种方式显示。如果我在没有 sql 查询的情况下尝试相同的操作,它将显示进度条,这意味着进度条可以工作。
如何让进度条可见,直到 sql 语句完成?
感谢您的回答!
亲切的问候, 优皮
【问题讨论】:
-
您是从后台线程调用
resultbox.Visibility = Visibility.Visible;吗?这似乎是最可能的原因......
标签: c# sqlite windows-phone-8 progress-bar