我是一个试图找出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世界来看,这对我来说并不明显。
答案 0 :(得分:2)
System.Data.Common.DbParameterCollection 抽象因此您无法创建它。你应该创建一个(具体的(从它继承的集合。在SQLite的情况下,它将是Mono.Data.Sqlite.SqliteParameterCollection
。
您的第二个错误可能与第一个错误有关,因为parameters
无法正确编译。