无法在wp7中向sqlite插入硬编码值

本文关键字:插入 编码值 sqlite 中向 wp7 | 更新日期: 2023-09-27 18:01:31

我在Windows phone 7中使用sqlite数据库我正在使用Community.CsharpSqlite.Wp第三方dll

我创建了客户表,其中有ID, Name, Email, Desc等字段

 public class Customer
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public string Desc { get; set; }
    public Customer() { }
    public Customer(int Id, string name, string email, string desc)
    {
        ID = Id;
        Name = name;
        Email = email;
        Desc = desc;
    }      
}

和我的插入语句如下,在按钮上单击

     private void btnAdd_Click(object sender, RoutedEventArgs e)
     { 
        string strInsert = " Insert into Customer (Name,Email,Desc) values(@Name,@Email,@Desc)";
        Customer tst = new Customer
                {
                    Name = "Name " + i,
                    Email = Name + "@" + "aaa.com",
                    Desc = "Desc for " + i
                };
        rec = (Application.Current as App).db.Insert < Customer>(tst,strInsert);
     }

This Code Works fine..值将被插入数据库。

但是如果我硬编码像

这样的值

"Insert into Customer (Name,Email,Desc) values ('ABCD','TEST@gmail.com','DESCRI')"

和我的代码更改如下

 private void btnAdd_Click(object sender, RoutedEventArgs e)
{ 
    Customer tst = new Customer();             
    string strInsert = " Insert into Customer (Name,Email,Desc) values ('ABCD','TEST@gmail.com','DESCRI')";           
    rec = (Application.Current as App).db.Insert < Customer>(tst,strInsert);
}

我得到错误"插入失败:绑定或列索引超出范围"在DBHelper.cs

无法在wp7中向sqlite插入硬编码值

你正在调用一个接受一个对象的泛型重载。根据该对象/类型,我假设helper创建了需要与实际sql语句中的参数占位符匹配的参数。

如果你想执行一个没有参数或不需要参数的SqliteCommand,使用不带对象的重载,例如:

cmd.ExecuteNonQuery();