【问题标题】:Can't cast database type tsvector to String无法将数据库类型 tsvector 转换为字符串
【发布时间】:2017-04-18 21:45:24
【问题描述】:

我刚刚开始使用 PostgreSQL,并且正在尝试执行全文搜索。我在表中有一些记录,列search 类型为tsvector。这一切都很好。但是,使用 Npgsql,我正在尝试执行:

using (var cmd = new NpgsqlCommand())
{
    cmd.CommandText = "SELECT search FROM data";
    cmd.Prepare();
    var reader = cmd.ExecuteReader();
}

但我不断收到InvalidCastException 的说法

无法将数据库类型 tsvector 转换为字符串

我认为我需要添加更多内容才能正确转换类型,但 NpgSql 的文档似乎几乎不存在。这只是不能做的事情,还是我应该做不同的事情?

【问题讨论】:

    标签: c# postgresql npgsql


    【解决方案1】:

    我对 NpgsqlCommand 没有任何了解,但你有没有尝试过这样的事情:

    var stringResponse= cmd.ExecuteReader().GetString(0);
    

    【讨论】:

    • 不完全是那种语法,但你让我在正确的轨道上思考,所以我会把它标记为接受。出于某种原因,我的调试器在我的ExecuteReader() 上崩溃了,但问题实际上出在GetString(0) 上,我在更远的地方做这件事。我假设只是得到了该字段中任何内容的字符串表示形式(类似于 C#.ToString())。但显然不是。 GetValue(0) 对我有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多