2011-11-10 2 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 "추상 클래스 또는 인터페이스 'System.Data.Common.DbParameterCollection'의 인스턴스를 만들 수 없습니다".Value = "테스트"(DbType.String, "1 @") ; < - "로컬 변수 'parameters'는 선언되기 전에 사용할 수 없습니다."

나는 대답은 매우 간단 확신 해요,하지만 VB.Net 세계에서 오는 것은,이 나에게 명확하지 않다.

답변

2

System.Data.Common.DbParameterCollection초록이므로 만들 수 없습니다. 당신은 그것에서 상속 (콘크리트 (컬렉션을 생성해야한다. SQLite는 경우가 될 것이다 Mono.Data.Sqlite.SqliteParameterCollection.

parameters가 제대로 컴파일 할 수 없기 때문에 두 번째 오류 가능성이 처음으로 관련이있다.