private void Update_Button_Click(object sender, EventArgs e)
{
////////////////////////////////////////// Update Data ////////////////////////////////////////////////////////////////////////////////////
string Query = "Update Contact_List set Id='" + Id_Box.Text + "' ,Name='" + Name_Box.Text + "' ,Adress1='" + Adress1_Box.Text + "',Adress2='" + Adress2_Box.Text + "' ,City='" + City_Box.Text + "' ,Province='" + Province_Box.Text + "' ,Postal_Code='" + Code_Box.Text + "' ,Phone='" + Phone_Box.Text + "' ,Email='" + Email_Box.Text + "' where id='" + Id_Box.Text + "' ;";
SqlCeCommand cmd = new SqlCeCommand(Query, con);
SqlCeDataReader reader;
try
{
con.Open();
reader = cmd.ExecuteReader();
MessageBox.Show("Information Updated.....");
while (reader.Read())
{
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();
このコードは機能しますが、唯一の問題はtextBox内の同じIdでデータを編集することだけです。だから、私が人のIDを編集したいとき、新しいIDがデータベースにないので編集できません。編集できません。データベース内のデータを編集するときに「または」を追加する必要はありますか?
とにかくクエリに「or」があるとします。
Algrithm:クエリのid = id_box.Textまたは名前= name_box.Text
私はIDまたは名前
を変更することができるように
SQLインジェクションALERT !!!危険!!! –
ストアドプロシージャを使用 –
最初に存在するかどうかをチェックして、そのロジックに応じて処理を実行するのはなぜですか?ヒント:Idで検索すると、レコードがあれば、更新する、そうでなければ追加する –