SQL Serverから行を削除するときに、Asp.netのC#コードにわずかな問題があります。 ExecuteNonQueryを使用して、ページにレンダリングするメッセージを特定しています。 ExecuteNonQueryが1を返した場合、私は成功メッセージを表示します。私が立ち往生しているところでは、私はレコードを追加してレコードを更新し、コードが正常に動作するのと同じロジックを持っています。コードについては以下を参照してください。現在、影響を受けたレコードを正常に削除するとExecuteNonQueryの値が0に戻ります
private void Delete_row(string ImageId)
{
string sSQL = "delete FROM dbo.Image_library_UK_temp where Image_id=" + ImageId;
using (SqlConnection dbConnection = new SqlConnection(app_settings.sql_conn_string_db))
{
try
{
//delete the row from db
dbConnection.Open();
SqlCommand command = new SqlCommand(sSQL, dbConnection);
command.CommandType = CommandType.Text;
command.CommandTimeout = 1024;
command.ExecuteNonQuery();
int rowsAffected = command.ExecuteNonQuery();
if (rowsAffected == 1)
{
messagepanel1.ShowSuccessMessage("The image " + txtImgTitle.Text + "has been deleted from the system.");
DisableValidation();
}
}
catch (Exception ex)
{
messagepanel1.ShowErrorMessage("Error: Deletion unsuccessful");
}
Session.RemoveAll();
generateTable(false);
}
}
行は、私のSQLがハードコーディングされたC#であると私は、ストアドプロシージャを使用していないので、これは、単純なSQL文で0を返します。
どのように私はこの作品を作ることができますか?
あなたのコードは非常に深刻なセキュリティ上の問題であるSQLインジェクションを受けやすいです! – Yahia
あなたはSQLサーバー上で直接クエリを実行しようとしましたか?それは動作しますか? – Dilberted
このサイトは社内向けのものです。 –