我有一个使用 MSFT 同步框架并正在查询 sql 数据库的 Windows Mobile 应用程序。
这是代码:
private void buttonStart_Click(object sender, EventArgs e)
{
using (SqlCeConnection conn = new SqlCeConnection(
("Data Source=" + (Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase), "Barcode.sdf") + ";Max Database Size=2047"))))
{
// Connect to the local database
conn.Open();
using (SqlCeCommand cmd = conn.CreateCommand())
{
SqlCeParameter param = new SqlCeParameter();
param.ParameterName = "@Barcode";
param.DbType = DbType.String;
param.Value = textBarcode.Text.Trim();
// SELECT rows
cmd.CommandText = "SELECT Location, Reading FROM Main WHERE Barcode LIKE @Barcode";
cmd.Parameters.Add(param);
DataTable data = new DataTable();
using (SqlCeDataReader reader = cmd.ExecuteReader())
{
data.Load(reader);
this.dataGrid1.DataSource = data;
}
}
}
}
这是表格:
因此,当我将查询更改为此:
cmd.CommandText = "SELECT Location, Reading FROM Main WHERE Barcode LIKE 'NGM0001'";
它返回正确的结果。但是当 NGM0001 在 textBarcode 中并输入时,不会返回任何结果。让我相信这一定是参数的问题。我有相同的代码段在另一个解决方案中工作,所以我不确定出了什么问题。
此外,所有 db 字段都是 nvarchar(50) 类型。
谢谢你的帮助。