在.NET 3.5中使用Npgsql(2.0.11和2.0.11.94)DLL使用Postgresql时,我遇到了一个非常奇怪的错误.
我创建了一个程序来运行这两个查询(这些查询直接从程序输出中复制):
INSERT INTO "db_events" VALUES ('2','1','2','1', to_timestamp('2012/08/27 10:22:43', 'YYYY/MM/DD HH24:MI:SS'),'2012', '8', '27', '10', '22', '43', '35' );
INSERT INTO "db_events_counts" VALUES ('1','2', '0', '1', '0', '1' );
Run Code Online (Sandbox Code Playgroud)
这个程序将在Windows XP x86上完美运行,同时具有postdres 8.4.12和9.0.9,并将数据输入到表中.
但是,当在Windows 7上运行完全相同的程序时,如果数据库的设置方式与Windows XP数据库完全相同,则会遇到错误:
ERROR: 42P01: relation "db_events" does not exist
Run Code Online (Sandbox Code Playgroud)
我已经读过这个错误是因为postgres强制表名为小写,这很好,因为它们已经存在.或者用引号创建的表必须用引号引用,这也很好,因为我使用引号.
在windows 7数据库中,如果我将这两个查询复制并粘贴到pgadmin中,它们工作正常,没有错误,这让我相信它与DLL有关吗?
没有意义的是这个程序在我的Windows XP系统上运行bug,同时在Windows 7上不断抛出这个错误.
我也尝试了一个简单的删除声明:
DELETE FROM "db_events"; DELETE FROM "db_events_counts";
Run Code Online (Sandbox Code Playgroud)
但这也以同样的错误结束.
有什么我想念的吗?Npgsql是否需要在运行时在相同的Windows环境中编译?或者Windows 7和Windows XP之间是否存在一些微妙的区别,而且我没有得到postgres.
任何有关该主题的帮助或信息将不胜感激.
由于有关连接的问题,这是我尝试过的:
Server=localhost;Port=5433;User Id=databaseuser;Password=databaseuser_123;Database=db123;
Server=127.0.0.1;Port=5433;User Id=databaseuser;Password=databaseuser_123;Database=db123;
Server=10.223.132.123;Port=5433;User Id=databaseuser;Password=databaseuser_123;Database=db123;
Run Code Online (Sandbox Code Playgroud)
最后一个是本地机器的IP地址.
以下是在Win 7:
//连接上连接和断开服务器程序的简短日志
2012-08-27 11:26:00 EST ERROR: relation "db_events" does not …Run Code Online (Sandbox Code Playgroud) input("Would you like to read: comedy, political, philisophical, or tragedy?")
a = "comedy"
b = "political"
c = "philisophical"
d = "tragedy"
if a:
input("Would you like the author's nationality to be: English or French?")
e = "French"
d = "English"
if e:
print("Tartuffe")
elif d:
print("Taming of the Shrew")
Run Code Online (Sandbox Code Playgroud)
当我运行该程序时,默认为喜剧,然后是Tartuffe.
如何让它识别字符串中的差异类型?