2011-11-10 19 views
1

私はMonoTouch C#を理解しようとしているvb.netの人です。MonoTouch:DbParameterCollectionを作成できませんか?

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パラメータ:

    私はこのデータヘルパーを作りました= new System.Data.Common.DbParameterCollection(); <から

  • parameters.Add( "@ 1"、DbType.String).Valueの= "テスト" "抽象クラスのインスタンスまたはインタフェースのSystem.Data.Common.DbParameterCollection"を作成できません" ; < - "ローカル変数 'parameters'は宣言される前に使用できません。

私は答えは非常に簡単ですが、VB.Netの世界から来、これは私には明らかにされていません確信しています。

答えて

2

System.Data.Common.DbParameterCollection抽象ですので、作成することはできません。あなたはそれを継承する(具体的な(コレクションを作成する必要があります。SQLiteの場合、それはMono.Data.Sqlite.SqliteParameterCollectionだろう。

parametersが正しくコンパイルすることができませんでしたので、あなたの2番目のエラーはおそらく、最初に関連している。

関連する問題