2011-05-19 136 views
0

問題我無法弄清楚,爲什麼下面的更新查詢不執行,有什麼建議:與更新查詢

static public void updateSelectedMainNewsImage(int newsID, string filename, string replace) 
{ 
    SqlConnection conn = new SqlConnection(ConnectionString); 
    conn.Open(); 
    SqlCommand updateNews = new SqlCommand("Update newsImages SET [newsImage] [email protected] where [newsID] [email protected] AND [newsImage] [email protected]", conn); 
    updateNews.Parameters.AddWithValue("@newsID",SqlDbType.Int).Value = newsID; 
    updateNews.Parameters.AddWithValue("@filename",SqlDbType.VarChar).Value = filename; 
    updateNews.Parameters.AddWithValue("@replace",SqlDbType.VarChar).Value = replace; 

    updateNews.ExecuteNonQuery(); 
    conn.Close(); 
} 
+3

數據庫表模式是什麼樣的?另外,你是否收到錯誤信息? – Rob 2011-05-19 16:32:35

+0

不,我沒有得到錯誤,但它沒有更新數據庫 – 2011-05-19 16:35:26

+0

沒有症狀,很難說,但我猜測值newsID和replace不匹配任何現有的行。 – 2011-05-19 16:36:06

回答

2

如果它不示數則是工作。沒有記錄符合您的WHERE條件。

+0

同樣的查詢在sql server上運行正常 – 2011-05-19 16:39:16

+0

是的,但數據必須有不同:)如果你說沒有錯誤,那麼更新運行良好,只是沒有找到更新 – 2011-05-19 16:43:14

+0

你將需要打印出你的查詢字符串,看看有什麼不同 – 2011-05-19 16:44:09

1

您使用updateNews.Parameters.AddWithValue("@filename",SqlDbType.VarChar).Value = filename;

嘗試

updateNews.Parameters.AddWithValue("@filename",filename,SqlDbType.VarChar);

這是因爲parameter.addwithvalue功能不需要值屬性設置它有一個重載的版本一樣above.i如果希望更換此這可以幫助