2016-10-13 11 views
0

カウンタを使用してテーブルを増やしたいと思います。だから私は、次の表を得た:CassandraでC#でカウンタを更新する

はテーブルcounterInt(MeterID int型、DayStampタイムスタンプ、NumberOfValuesカウンタ、値1カウンタ、値2カウンタ、qualityScoreカウンタ、PRIMARY KEY((MeterID)、DayStamp))

を作成します

はまた、私は、オブジェクトのリストを持っていると私は、オブジェクトリストを記入し、それを介して

public void insertBasic(List<CSVMeter> meterList) 
    { 
     try 
     { 
      Connect(); 
      var statement = session.Prepare("Update counterInt SET NumberOfValues = NumberOfValues + ?, Value1 = Value1 + ?, Value2 = Value2 + ?, QualityScore = QualityScore + ?, ID, DayStamp,) VALUES (?,?,?,?,?,?)"); 
      var tasks = new List<Task>(); 
      foreach (CSVMeter meter in meterList) 
      { 
       var bind = statement.Bind(meter.NumberOfValues, meter.Value, meter.Value2, meter.qualityScore, meter.MeterID, meter.PeriodStart); 
       var resultSetFuture = session.ExecuteAsync(bind); 
       tasks.Add(resultSetFuture); 
      } 
      Task.WaitAll(tasks.ToArray()); 
      CloseConnection(); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

を繰り返すこれは、C#

の私のオブジェクトであります

次のエラーが発生し、どうすれば解決できるのですか?また、この例のようなプリペアドステートメントを使用できますか?

タイプの未処理の例外 'Cassandra.SyntaxErrorを' counterTest.exe で発生しました追加情報:行1:136の入力でない実行可能な代替 ''(... = QualityScore +、ID [、] ...)

さらに質問:整数の代わりに倍精度でインクリメントすることは可能ですか?

答えて

1

エラーメッセージが示すとおり、cqlコマンドに構文エラーがあります。

UPDATEコマンドの場合は、WHERE句を使用し、VALUE句を使用しないでください。

INSERTUPDATEコマンドをマージしたようです。

+0

大丈夫です、あなたは絶対に正しいです。どのようなルーキーミス。 – Proliges

関連する問題