我认为这很容易,但我不能让它发挥作用:
Table=(int,int,text)
NpgsqlCommand command = new NpgsqlCommand("select * from database_data ncd inner join players p on p.player_id = ncd.player_id where p.playername ='Name1', conn);
string _data = (String)command.ExecuteScalar();
现在我得到了数据....现在我只想写回来......但是......
NpgsqlCommand command2 = new NpgsqlCommand("Update database_data ncd inner join players p on p.player_id = ncd.player_id where p.playername ='Name2' + "'", conn);
command2.Parameters.Add(?????)
command2.ExecuteNonQuery();
我只设法更新整行。
NpgsqlCommand command2 = new NpgsqlCommand("insert into database_data values(1,2222,3333)", conn);
command2.ExecuteNonQuery();
conn.Close();
这很好用,但我不能将它与连接和where。
结合起来如果加入不起作用,我可以简单地使用where player_id=x
并在其他地方获得player_id
。
答案 0 :(得分:1)
从我最好的知识来看,pqsql中的更新语句应该看起来像
update <table> set field1=value1, field2=value2 .... from FROM_CLAUSE WHERE WHERE_CLAUSE
但是在您的代码中,您的陈述与此模板不匹配。那么,您能否更准确地说出您想要对数据做些什么?
答案 1 :(得分:0)
除非您有一个名为ncd.data
的表:
Update ncd.data
from data ncd inner join
players p
on p.player_id = ncd.player_id
where p.playername ='Name2' + "'";
我猜你的意图是:
Update data ncd
from players p
where p.player_id = ncd.player_id and
p.playername ='Name2' + "'";