2011-05-19 124 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如果希望更换此这可以帮助