我只是試圖做一個簡單的數據庫更新,我得到一個異常,我不明白。ExecuteNonQuery拋出invalidCastException
這裏是代碼 - 幫助請:
protected void btnmodif_Click(object sender, EventArgs e)
{
SqlConnection sqlConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["AGENDAConnectionString2"].ConnectionString);
SqlCommand sqlComm = new SqlCommand();
sqlComm = sqlConn.CreateCommand();
sqlComm.CommandText = @"UPDATE RDV SET STATUES_COM = @STAT_COM WHERE INDICE = @ind";
sqlComm.Parameters.Add("@STAT_COM", SqlDbType.VarChar);
sqlComm.Parameters["@STAT_COM"].Value = DropDownList1.SelectedItem.Text;
sqlComm.Parameters.Add("@ind", SqlDbType.VarChar);
sqlComm.Parameters["@ind"].Value = Request.QueryString["Champ"].ToString();
sqlConn.Open();
sqlComm.ExecuteNonQuery();
sqlConn.Close();
Response.Write(@"<script language='javascript'>alert('SUCCESS');</script>");
}
我更新的代碼
那麼什麼是例外更換你的代碼?總是提供完整的異常詳細信息(堆棧跟蹤,消息,嵌套異常)。 –
但是除此之外,你不應該在引號中使用參數 - 例如,你想要'SET STATUES_COM = @ STAT_CONM WHERE INDICE = @ ind'。另外,'Parameters.Add'返回參數,所以你可以使用'sqlComm.Parameters.Add(「@ ind」,SqlDbType.VarChar).Value = Request.QueryString [...];' - 它使代碼這個方法簡單得多。 –
使用調試器並告訴我們這裏的值是什麼'DropDownList1.SelectedItem',你應該捕獲'DropDownList1.SelectedItem.Text' – MethodMan