我正在設計一個數據庫應用程序,並有一個表格填充來自sql數據庫的數據。如果用戶雙擊表單上的任何文本框,則可以使用輸入框更改該值,然後執行以下代碼更新數據庫。SqlCommand.ExecuteNonQuery()不會更新我的數據庫
private void ProcessChanges(string strField, string strCurrentValue)
{
//...Connect To Database...//
string strCaseNo = txtCaseNo.Text;
string strConnect = BuildConnectionString();
SqlConnection linkToDB = new SqlConnection(strConnect);
linkToDB.Open();
//...Request User Input New Value...//
string strMessage = "Enter ammended details and click OK," + Environment.NewLine +
"or click Cancel to exit.";
string strInput = Interaction.InputBox(strMessage, "Case Details", strCurrentValue);
//...Send User Input to Database...//
string commandText = "UPDATE tblCases SET @FieldVal = @InputVal WHERE CaseNo = @CaseNoVal;";
SqlCommand sqlCom = new SqlCommand(commandText, linkToDB);
sqlCom.Parameters.Add("@FieldVal", SqlDbType.Text);
sqlCom.Parameters.Add("@InputVal", SqlDbType.Text);
sqlCom.Parameters.Add("@CaseNoVal", SqlDbType.VarChar);
sqlCom.Parameters["@FieldVal"].Value = strField;
sqlCom.Parameters["@InputVal"].Value = strInput;
sqlCom.Parameters["@CaseNoVal"].Value = strCaseNo;
int intQuery = sqlCom.ExecuteNonQuery();
MessageBox.Show(intQuery.ToString());
}
問題是數據庫根本沒有更新。我知道連接是好的,因爲在我的應用程序中使用了相同的ConnectionStringBuilder。我還在末尾添加了消息框,告訴我ExecuteNonQuery()的返回值是'1',因此表示行已更新。然而,我的數據庫沒有任何變化,現在它真的讓我很煩。
請原諒我,如果這是一個愚蠢的問題,但你100%確定你的數據庫沒有刷新,你可能正在看緩存值? – KingCronus 2011-12-21 12:29:07