C# PostgreSQL中的Workstationid属性?
在这里,我需要获取一个字符串,该字符串标识使用带C#的PostgreSQL的数据库客户端。下面是一个例子 示例:C# PostgreSQL中的Workstationid属性?,c#,postgresql,C#,Postgresql,在这里,我需要获取一个字符串,该字符串标识使用带C#的PostgreSQL的数据库客户端。下面是一个例子 示例: private static void OpenNpgsqlConnection(string connectionString) { using (NpgsqlConnection connection = new NpgsqlConnection(connectionString)) { connection.Open(); C
private static void OpenNpgsqlConnection(string connectionString)
{
using (NpgsqlConnection connection = new NpgsqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("WorkstationId: {0}", connection.WorkstationId);
}
}
'Npgsql.NpgsqlConnection' does not contain a definition for 'Workstationid'.
错误:
private static void OpenNpgsqlConnection(string connectionString)
{
using (NpgsqlConnection connection = new NpgsqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("WorkstationId: {0}", connection.WorkstationId);
}
}
'Npgsql.NpgsqlConnection' does not contain a definition for 'Workstationid'.
您似乎是指
SQLConnection的MS-SQL特定属性。
这是MS SQL特定的属性。nPgSQL不存在它,当然您可以添加它
MSDN中的文档毫无用处,因此很难说出它的实际用途。随便猜一猜,我想您可能指的是类似PostgreSQL的东西—服务器从存储过程或函数中查找有关客户端信息的一种方式
客户端驱动程序或应用程序必须设置应用程序名称
;没有自动设置为“网络名称”的内容。(如果客户端不是Windows box,这意味着什么?)。应用程序可以在连接字符串中或通过显式的set
命令设置application\u name
您还可以运行任意SET
命令。例如,您可能决定将“工作站名称”存储在myapp.workstationid
连接属性中。所以你:
SET myapp.workstationid = 'BOBSCOMPUTER';
在建立初始连接后,从您的应用程序
存储过程现在可以使用当前设置('myapp.workstationid')
访问它
请注意,在这两种情况下,能够发送原始SQL的用户只需用他们想要的任何内容替换这些设置即可。所以不要为了安全而使用它们。。。。这片土地应该从哪里来?你把它存放在哪里?确定数据库客户端的哪个方面?从哪里来?(您正在寻找
应用程序\u name
?)@Craig Ringer,在SQL Server中,它来自命名空间:System.Data.SqlClient
和程序集:System.Data In(System.Data.dll)
。我想知道它是否存在于PostgreSQL中?好吧,您的代码表明它不存在。如果你解释一下你真正想要达到的目标,也许会有所帮助。这意味着要解决什么问题。@Craig Ringer,上面的代码只是一个例子。实际上,我想知道“如何使用PostgreSQL中的属性WorkstationID(在SQL Server中)获取客户端的网络名称”?其中“网络名称”是Windows客户端主机名,如AD中的“mycomputer.clients.mycompany.com”?还是它的“我的电脑”部分?从何处获取-如果您在客户端上运行上述代码,那么您已经知道网络名称。那么代码应该在哪里运行呢?在PostgreSQL服务器上?这是无望的模糊。