【发布时间】:2016-10-17 09:38:29
【问题描述】:
我是 Cassandra 柜台领域的新手。所以我创建了一个测试环境。 我可以成功插入数据库,但是当我尝试从数据库中选择时,出现以下错误:
Cassandra.dll 中出现“System.InvalidCastException”类型的未处理异常 附加信息:指定的演员表无效。
我得到了以下数据库:
create table counterInt (
MeterID int,
DayStamp timestamp,
NumberOfValues counter,
Value1 counter,
PRIMARY KEY ((MeterID), Daystamp));
这是我的选择方法:
编辑:当它到达row.GetValue<double>("value1"); 时发生错误
主键被选中。
public List<CSVMeter> selectBasic()
{
Connect();
var resultList = new List<CSVMeter>();
RowSet result = session.Execute("select * FROM counterInt");
foreach (Row row in result.GetRows())
{
CSVMeter csvMeter = new CSVMeter();
csvMeter.MeterID = row.GetValue<int>("meterid");
csvMeter.PeriodStart = row.GetValue<DateTime>("daystamp");
csvMeter.Value = row.GetValue<double>("value1");
csvMeter.NumberOfValues = row.GetValue<double>("numberofvalues");
resultList.Add(csvMeter);
}
CloseConnection();
return resultList;
}
我的对象:
public int MeterID { get; set; }
public DateTime PeriodStart { get; set; }
public double Value { get; set; }
public double Value2 { get; set; }
public CSVMeter(int meterID, DateTime periodStart, double value, double numberOfValues)
{
this.MeterID = meterID;
this.PeriodStart = periodStart;
this.Value = value;
this.Value2 = value2;
this.NumberOfValues = numberOfValues;
this.qualityScore = qualityScore;
}
counterInt 表中有值。我做错了吗?
【问题讨论】:
-
@JaydipJ 我不明白你的问题?它在我的对象中定义为
NumberOfValues? -
是的,我也问同样的问题,因为在您的对象声明中没有该字段的声明
-
@JaydipJ 可能是编辑错误(最小化代码以进行概述)问题不在于
numberOfValue字段。当代码到达row.GetValue<double>("value1");时出现问题然后我得到无法识别的异常。 -
我不知道 cassandra 只是想问问
counterDataType 中存储了什么样的数据,即 Int,double,float.. -
@JaydipJ 显然我需要将 double 更改为 long。现在它确实有效。计数器是一个特殊的行,根据我在下面标记的答案是整数。