この特定の問題を解決した回避策が見つかりました。データベースのデータが1つのコントロールセットにロードされ、更新情報が別のコントロールセットにenetredされます。コメントありがとうございます。アプリケーションが動作しています。データベースを更新していないC#で更新コマンド
データベース行を更新しようとしています。私はいくつかのfora /ウェブサイトで見つけたものに基づいて次のコードを書いた。彼はデータベースを更新していません。
UpdateCmd.Parameters["@editFirstName"] = "George";
に私も
UpdateCmd.Parameters["@editFirstName"] = "'" + editFirstNameContent.Text + "'";
をしようとしたとして@editFirstNameの値は、リテラルである場合は、データベースが正しく更新されます:私は、次を発見した、このエラーを修正するために何かをしようとした後
これは動作しませんでした。
string firstNameValue = editFirstNameContent.Text;
UpdateCmd.Parameters["@editFirstName"] = firstNameValue;
動作しませんでした:
は、私はまた、変数にTextBoxのデータを入れて、変数を使用しようとしました。したがって、UPDATEコマンドは明らかにデータバインドを更新しています。しかし、明らかにParameters.Value行はTextBoxのデータを読み取っていないため、変更された値で更新されていません。
protected void editCustomerButton_Click(object Sender, EventArgs e)
{
string connString = WebConfigurationManager.ConnectionStrings["proofreadThePlanetConnectionString"].ConnectionString;
using (SqlConnection connection = new SqlConnection(connString))
{
connection.Open();
string updateString = "UPDATE tblCustomerInfo SET [email protected], [email protected], [email protected], [email protected] WHERE customerID=" + Request.QueryString["EID"];
SqlCommand UpdateCmd = new SqlCommand(updateString, connection);
UpdateCmd.Parameters.Add("@editCustomerID", SqlDbType.Int);
UpdateCmd.Parameters["@editCustomerID"].Value = editCustomerIDContent.Text;
UpdateCmd.Parameters.Add("@editFirstName", SqlDbType.VarChar, 25);
UpdateCmd.Parameters["@editFirstName"].Value = editFirstNameContent.Text;
UpdateCmd.Parameters.Add("@editLastName", SqlDbType.VarChar, 50);
UpdateCmd.Parameters["@editLastName"].Value = editLastNameContent.Text;
UpdateCmd.Parameters.Add("@editEmail", SqlDbType.VarChar, 75);
UpdateCmd.Parameters["@editEmail"].Value = editEmailContent.Text;
UpdateCmd.ExecuteNonQuery();
}
}
これらのパラメータをすべて使用しても、最後にコマンドにコンカチメントが残っているのはなぜですか? –
Parameters.Add経由で更新された値を追加すると、SQLインジェクションを避けるために、QueryStringパラメーターをParameters.Addで渡す必要があります。おそらくあなたのPKであるcustomerIDを更新しますか? – devio
エラーが表示されますか? 'try {...} catch(例外ex)を入れてみてください...'それをブロックする - 例外はありますか?どのデータ型が 'customerID'ですか??それが文字列でなければならない場合は、一重引用符を置く必要があります。 **パラメータを使用してください** ** –