在我的 sdf 文件中选择数据非常慢

Selecting Data in my sdf file is very slow

我正在使用 Windows ce 5.0 版本开发符号摩托罗拉设备上的应用程序,我尝试使用简单的 select 命令从 "sdf" 数据库中读取查询. 但是结果来的非常非常慢。

这是我的代码

private SqlCeConnection myCn;
private SqlCeCommand cm;
private SqlCeDataReader dr;

myCn = new SqlCeConnection("Data Source=\Storage Card\PDT_Data.sdf;Max Database Size=4091;Max Buffer Size = 1024;Default Lock Escalation =100;");
cm = myCn.CreateCommand();
cm.CommandText = "SELECT * FROM MainInputFile WHERE BARCODE = " +  txtBarCode;
dr = null;
if (myCn.State != ConnectionState.Open) myCn.Open();
dr = cm.ExecuteReader();
while (dr.Read())
{
 txtBarCode.Text = dr["BARCODE"].ToString();
 txtItemInformation.Text = dr["DESCRIPTION"].ToString();
 txtItemInformation.Text += "\r\n" + dr["BYUM"].ToString();
 txtItemInformation.Text += "\r\n" + dr["ITEMSKU"].ToString();
 txtItemInformation.Text += "\r\n" + dr["SALEPRIC"].ToString();
}

请任何人帮助我。

考虑为您的紧凑型数据库添加索引,其实很简单:

string command = "Create NONCLUSTERED INDEX BARCODE_INDEX ON MainInputFile(BARCODE)";
SqlCeCommand cmd = new SqlCeCommand(command, GetConnection());
cmd.ExecuteNonQuery();

设备上的数据库操作通常是昂贵的,如果你有大量数据一定要适当添加索引。

正如 Martheen 所指出的:将您的数据库操作与 UI 分开。