Tengo un pequeño problema en mi código C# en Asp.net cuando elimino una fila del servidor sql. Estoy usando ExecuteNonQuery para determinar qué mensaje represento en la página. Si ExecuteNonQuery devuelve un 1, entonces mostraré el mensaje de éxito. Donde me estoy estancando es que tengo la misma lógica para agregar un registro y actualizar un registro y mi código funciona bien. Vea a continuación el código.ExecuteNonQuery que devuelve el valor de 0 al eliminar con éxito un registro
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);
}
}
filas afectadas actualmente devuelve 0. Esta es una sentencia SQL sencilla por lo que mi sql está codificada en C# y no estoy usando un procedimiento almacenado.
¿Alguna idea de cómo puedo hacer que esto funcione?
¡Su código es propenso a la inyección de SQL, que es un problema de seguridad muy serio! – Yahia
¿Intentó ejecutar la consulta directamente en el servidor SQL? ¿Funciona? – Dilberted
Este sitio es para fines internos, de lo contrario, estaría de acuerdo. –