3

データをハイパーテーブル データベースに格納するための C# コードをいくつか作成しました。しかし、データを更新する方法がわかりません。以下は私がやったことです:

Hypertable b = new Hypertable();
b.Write("1", "value1");//this line is for writing to database
b.Write("1", "value111");//this line is for updating the value whose key = "1"

私の書き込み機能は次のとおりです。

public override bool Write(string key, string value)
{
    try
    {
        using (IContext context = Context.Create(connectionString))
        using (IClient client = context.CreateClient())
        {
            using (INamespace ns = client.OpenNamespace("Test", OpenDispositions.OpenAlways | OpenDispositions.CreateIntermediate))
            {
                using (ITable table = ns.OpenTable(tableName))
                {
                    using (ITableMutator mutator = table.CreateMutator())
                    {
                        Key _key = new Key { Row = key, ColumnFamily = "vvalue" };
                        mutator.Set(_key, Encoding.UTF8.GetBytes(value));
                    }
                }
            }
        }
        return true;
    }
    catch (Exception e)
    {
        Console.WriteLine("Hypertable--Write--{0}", e.Message);
        return false;
    }
}


したがって、私の更新は、同じキーで異なる値を使用して単純に再度書き込むことです。ただし、更新後、そのキーと値の読み取りを行うと、新しいキーと値 (key = "1" および value = "value111") が表示されるはずですが、表示されず、古いキーと値が表示されるだけです。 (key = "1" and value = "value1")
なぜこれが起こるのかわかりません。ヒントをいただければ幸いです。ありがとう。

4

1 に答える 1

0

mutator.Flush()最も内側のブロックに追加してみることができますusingが、ミューテーターがスコープ外になったときに自動的に呼び出されるはずです...

于 2012-12-08T01:33:16.483 に答える