0

複数列のデータベースを探していますが、メガバイトを超える SQLite でさえやり過ぎのようです (このようなものを使用しない限り、C# では使用できません)。最大 100 ~ 500k のコードのみが必要です。ここで最良の選択肢は何ですか?

C# のジェネリック ディクショナリはある程度役立ちますが、既定では、特定の値からキーを取得することはできません。同様に、データの列が 3 つ以上ある可能性があり、BiDictionaryを使用して値をクラス/構造体 (複数の値の場合) として使用したとしても、n 列の値のキーを見つけてから、キーの新しい o 列の値。そのため、少し不便です (さらに、そのリンクは、「set」コマンドさえない不完全な実装です)。

以下は、私が作成するテーブルの簡単な例です (ただし、12 列または 1000 行になる場合があります)。

name       type colour  length
orange     a    orange  5
apple      a    green   4
banana     c    yellow  7
strawberry b    red     3
blackberry b    black   2
gooseberry b    green   2

できればLINQまたはSQLのようなクエリを使用して、可能であれば高速な検索/書き込みと大規模なデータセットを使用して、テーブル内の値を他の値から取得/設定したいと思います。

4

3 に答える 3

5

このDataSetクラスは、実行している内容に適している可能性があります。XML (ReadXmlメソッド) から直接データを読み込むことができます。これはメモリ テーブルに変換されます。

DataTableデータを表す (またはいくつかとそれらの関係) を使用して、LINQ を使用してクエリを実行できます。

于 2012-05-27T21:02:40.807 に答える
0

Odedの回答とこの古い質問に基づいて、私はいくつかのサンプルコードを書き始めましたが、それは扱います。

//////////////////////////////////////////////
//// Setting up the table is as simple as this: 
DataTable table = new DataTable("fruit");

table.Columns.Add("name", typeof(string) );
table.Columns.Add("type", typeof(char));
table.Columns.Add("colour", typeof(string));
table.Columns.Add("length", typeof(int));

//////////////  name, type, colour, length
table.Rows.Add("orange", 'a',"orange", 5);
table.Rows.Add("apple", 'a',"green", 4);
table.Rows.Add("banana", 'c',"yellow", 7);
table.Rows.Add("strawberry", 'b',"red", 3);
table.Rows.Add("blueberry", 'b',"black", 1);
table.Rows.Add("gooseberry", 'b',"green", 2);
//////////////////////////////////////////////

////// Accessing the data via Linq!
var results = table.AsEnumerable()
    .Where(row => row.Field<char>("type") == 'b')
    .OrderBy(row => row.Field<int>("length"))
    .Select(row => row.Field<string>("name") +": "+row.Field<string>("colour"));                
foreach(string s in results) Console.WriteLine(s);
///////////////////////////////

出力は次のとおりです。

blueberry: black
gooseberry: green
strawberry: red
于 2012-05-28T02:03:39.920 に答える
0

SQL Server コンパクト エディションは .NET で無料です: http://en.wikipedia.org/wiki/SQL_Server_Compact

フラットな .sdf ファイルを使用してデータを保存し、それに対して SQL クエリを作成できます。

于 2012-06-04T19:21:06.103 に答える