2013-05-20 117 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內託。謝謝,但抱歉不起作用。錯誤:語法錯誤處於或接近「:」執行查詢時出錯 –