2012-02-17 3 views
0

このSQLクエリと同等のDataTableの行を取得するクエリ構文は何ですか?DataTable SQLのようにパラメータを選択Select x = @param

 SQLiteConnection cnn = new SQLiteConnection(System.String.Format("Data Source={0}", fpath)); 

     cnn.Open(); 
     DataTable primaryfeed = new DataTable(); 

     using (SQLiteTransaction dbTrans = cnn.BeginTransaction()) 
     { 
      using (SQLiteCommand cmd = cnn.CreateCommand()) 
      { 

       string command = System.String.Format("SELECT col1, col2, col3, col4 FROM AccountDataBase WHERE ID = @ID"); 

       SQLiteParameter param1 = new SQLiteParameter(); 

       param1.ParameterName = "@ID"; 

       cmd.Parameters.Add(param1); 

       cmd.CommandText = command; 

       for (int i = 0; i < selectedIDs.Length; i++) 
       { 

        param1.Value = selectedIDs[i]; 

        SQLiteDataReader reader = cmd.ExecuteReader(); 
        primaryfeed.Load(reader); 
        reader.Close(); 
       } 
      } 
      dbTrans.Commit(); 
     } 
     cnn.Close(); 

私はDataTableとIDの文字列配列を持っています。アレイからのID値を持つDataTableのすべての行をできるだけ早く取得するコマンドは何ですか?

同等のSQLクエリよりもはるかに遅いですか? myTableを想定し

答えて

0

は、IDという名前の列があり、あなたの操作を行います。答え ため

var foundRows = myTable.Select("ID IN (1, 12, 14, 10)"); 
+0

THXは、それがID列を持っていますが、質問の 最も重要な部分は、このIDの配列から及ぶことができるということです数千から数十分の一。だからこそ私は単純にそのような文字列をconcetanateできません。 またはその選択括弧内に4800 ID文字列を追加すると正しく動作すると思いますか? – ZAX

関連する問題