0

我有一个使用 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) 类型。

谢谢你的帮助。

4

1 回答 1

0

上面的代码是正确的。我重新编译并再次测试了该应用程序,它工作正常。我不确定是什么问题。

于 2012-06-01T16:26:58.280 回答