将带有值的变量传递给postgresql数据库

时间:2013-05-20 15:42:10

标签: c# mysql database variables

我在C#Visual studio 2010中创建了这个方法.ofd.Filename实际上是硬盘上文件位置的路径。此方法连接到MYSQL数据库,它运行良好。但是在Postgresql中,带有@symbol的变量imagepath根本无法识别。实际上,错误消息是“找不到未知的列imagepath”,但imagepath是一个值而不是数据库中的列。将@imagepath括在单引号中不会传递ofd.FileName的值,而是将文字传递到数据库中。有谁知道在postgresql中将变量值传递给数据库的方法?

string imagepath = ofd.FileName;
string connect = ("Server=localhost;Port=1006;Database=collegestudents;Uid=roberto;Pwd=****;");
MySqlConnection con = new MySqlConnection(connect);
string Query = ("UPDATE student SET studentpix = @imagepath WHERE pk_studentID = '?' OR pk_studentID = pk_studentID "); 
MySqlCommand cmd = new MySqlCommand(Query, con);
cmd.Parameters.AddWithValue("@imagepath",ofd.FileName);   

1 个答案:

答案 0 :(得分:0)

对于postgresql参数,前缀为:而非@,请尝试使用

string Query = ("UPDATE student SET studentpix = :imagepath WHERE pk_studentID = '?' OR pk_studentID = pk_studentID "); 
MySqlCommand cmd = new MySqlCommand(Query, con);
cmd.Parameters.AddWithValue("imagepath",ofd.FileName);