問題:你缺少Conversion
爲ControlOrder
列,所以列ControlOrder
將被視爲String
和檢查周圍single quotes
和他們缺少它會抱怨。
解決方案:如果列ControlOrder
是INT
類型plese在您爲其他列執行轉換。
試試這個:但我不建議這
thisCommand.CommandText = "Update Allowance_FormFields set LabelName='" +
controlText + "',ControlTypeId=" + Convert.ToInt32(ddlControlTypes.SelectedValue) + ",ControlOrder=" + Convert.ToInt32(txtControlOrder.Text) +",ControlDataSize=" + Convert.ToInt32(ddlControlDataLength.SelectedValue) + "," +
"ControlData='" + txtControlData.Text + "',AllowanceId=" + Convert.ToInt32(ddlAllowances.SelectedValue) +
"VisibleTo=" + Convert.ToInt32(ddlVisibleTo.SelectedValue) +" Where FormFieldId=" + hdnFormControlId.Value + "";
建議:查詢是開放的SQL injection attacks
,我會強烈建議您使用parameterised sql queries
避免。
注意:如果您使用parameterised SQL queries
您可以忽略轉換,因爲這些參數將隱式發送所需的類型。
試試這個:使用parameterised SQL queries
thisCommand.CommandText=thisCommand.CommandText = "Update Allowance_FormFields set [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected] Where [email protected]";
thisCommand.Parameters.AddWithValue("@LabelName",controlText);
thisCommand.Parameters.AddWithValue("@ControlTypeId",ddlControlTypes.SelectedValue);
thisCommand.Parameters.AddWithValue("@ControlOrder",txtControlOrder.Text);
thisCommand.Parameters.AddWithValue("@ControlDataSize",ddlControlDataLength.SelectedValue);
thisCommand.Parameters.AddWithValue("@ControlData",txtControlData.Text);
thisCommand.Parameters.AddWithValue("@AllowanceId",ddlAllowances.SelectedValue);
thisCommand.Parameters.AddWithValue("@VisibleTo",ddlVisibleTo.SelectedValue);
thisCommand.Parameters.AddWithValue("@FormFieldId",hdnFormControlId.Value);
向我們展示thisCommand.CommandText在設置後的值。它可能是其中一個值不是Int? –
不,它甚至沒有評估表達。執行此表達式時發生錯誤。 –