2013-05-20 75 views
0

我在C#Visual studio 2010中创建了这个方法。ofd.Filename实际上是硬盘上文件位置的路径。这种方法连接到MYSQL数据库,它工作得很好。但是在Postgresql中,带有@symbol的变量图像路径根本不能被识别。实际上,错误消息是'找不到未知的列图像路径',但图像路径不是数据库中的列。在单引号中包含@imagepath不会传递ofd.FileName的值,而是将文字词传递到数据库中。有谁知道一种将变量值传递给postgresql中的数据库的方法吗?将变量传递给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); 

回答

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); 
+0

@Clodoaldo内托。谢谢,但抱歉不起作用。错误:语法错误处于或接近“:”执行查询时出错 –