cassandra c#datastax客户端插入blob

时间:2015-10-26 13:29:21

标签: cassandra cassandra-2.0 datastax datastax-enterprise cassandra-cli

嗨,我想知道是否有一种更优雅的插入blob的方式,而不是将字节数组转换为字符串,如:

string strblob = "0x00" + BitConverter.ToString(stream2.GetBuffer()).Replace("-", "");

ISession session = cluster.Connect("abc");

session.Execute(string.Format("insert into events(blob) values ({0})", blobStr));

1 个答案:

答案 0 :(得分:3)

使用绑定语句有一种更优雅,更有效的解决方案。

byte[] blob = stream2.GetBuffer();
ISession session = cluster.Connect("abc");

PreparedStatement preparedStatement = session.Prepare("INSERT INTO events(blob) VALUES (?)");
BoundStatement boundStatement = preparedStatement.Bind(blob);

session.Execute(boundStatement);

PreparedStatement背后的想法是解析字符串查询一次,并根据需要使用不同的值重用它。所以要跟踪你准备好的陈述。