在 npgsql 中使用 psql 选项

Using psql options in npgsql

我在我工作的图书馆中使用的一个小应用程序中使用 npgsql。最初我的应用程序 (vb.net) 使用 sendkeys.sendsendkeys.sendwait 在 cmd 中键入 psql 命令.这 有效 但它缓慢且效率低下(丑陋,有缺陷等)。

我通常使用 psql 中的 \o 和 \H 选项将我的查询结果发送到格式为 HTML 的输出文件,并在我的应用程序中显示它。

我想知道 npgsql 是否可以处理一些可用的 psql 选项...特别是输出文件和输出格式(到 html)。

postgreSQL 文档的 psql 页面: http://www.postgresql.org/docs/devel/static/app-psql.html

我现在做的怎么样:

    SendKeys.Send("SET client_encoding = 'UTF8';" & "{ENTER}")
    SendKeys.Send("\o htmlout.html" & "{ENTER}")
    SendKeys.Send("\H" & "{ENTER}")
    SendKeys.Send("\T bgcolor=""#E4F1E4""" & "{ENTER}")**
    SendKeys.Send("SELECT * FROM public." & gdxfilebox.Text.Remove(5))
    SendKeys.Send("{ENTER}")
    SendKeys.Send("WHERE gid IN {(}" & gidbox.Text.Trim() & "{)};")
    SendKeys.SendWait("{ENTER}")
    SendKeys.SendWait("\q" & "{ENTER}")
    SendKeys.SendWait("exit" & "{ENTER}")

谢谢!

Npgsql 只是一个与数据库交互的驱动程序,HTML 结果格式化完全超出了它的范围(不像 psql,它是一个面向用户的控制台应用程序)。请注意,没有任何 "universal" 方法可以使 HTML 的格式满足所有人。

但是,从数据库中读取查询并将结果格式化为 HTML 应该非常容易,只需使用 NpgsqlDataReader 的 API 从每个结果行中读取列并格式化 HTML 从那里开始。