MonoTouch:无法创建DbParameterCollection?

时间:2011-11-10 21:57:31

标签: c# ios sqlite xamarin.ios system.data

我是一个试图找出MonoTouch c#的vb.net人。

我制作了这个数据助手:

public static void ExecuteCommand (SqliteConnection cnn, string command, System.Data.Common.DbParameterCollection parameters)
{
    using (var c = cnn.CreateCommand()) {
        c.CommandText = command;
        c.CommandType = CommandType.Text;
        foreach (var p in parameters)
        {
            c.Parameters.Add (p);
        }
        c.ExecuteNonQuery ();
    }
}

现在我想调用ExecuteCommand ...

var parameters = new System.Data.Common.DbParameterCollection();
parameters.Add("@1", DbType.String).Value = "test";
DataConnection.ExecuteCommand ("INSERT INTO mytest (name) VALUES (@)", parameters);

但是MonoTouch说......

  • var parameters = new System.Data.Common.DbParameterCollection(); < - “无法创建抽象类或接口的实例'System.Data.Common.DbParameterCollection'”

  • parameters.Add(“@ 1”,DbType.String).Value =“test”; < - “在声明局部变量'参数'之前不能使用它。”

我确信答案很简单,但是从VB.Net世界来看,这对我来说并不明显。

1 个答案:

答案 0 :(得分:2)

System.Data.Common.DbParameterCollection 抽象因此您无法创建它。你应该创建一个(具体的(从它继承的集合。在SQLite的情况下,它将是Mono.Data.Sqlite.SqliteParameterCollection

您的第二个错误可能与第一个错误有关,因为parameters无法正确编译。