Los ejemplos anteriores son bastante útiles. Pero, si queremos verificar si una fila en particular tiene un valor particular o no. En caso afirmativo, elimine y rompa y, en caso de que no haya ningún valor, encuentre el error de tiro recto. A continuación, el código funciona:
foreach (DataRow row in dtData.Rows)
{
if (row["Column_name"].ToString() == txtBox.Text)
{
// Getting the sequence number from the textbox.
string strName1 = txtRowDeletion.Text;
// Creating the SqlCommand object to access the stored procedure
// used to get the data for the grid.
string strDeleteData = "Sp_name";
SqlCommand cmdDeleteData = new SqlCommand(strDeleteData, conn);
cmdDeleteData.CommandType = System.Data.CommandType.StoredProcedure;
// Running the query.
conn.Open();
cmdDeleteData.ExecuteNonQuery();
conn.Close();
GetData();
dtData = (DataTable)Session["GetData"];
BindGrid(dtData);
lblMsgForDeletion.Text = "The row successfully deleted !!" + txtRowDeletion.Text;
txtRowDeletion.Text = "";
break;
}
else
{
lblMsgForDeletion.Text = "The row is not present ";
}
}
dr.Read() lee fila por fila desde el búfer de red, no fila por fila desde la base de datos. Solo hay una recuperación de la base de datos. Por lo tanto, la lectura de una tabla de datos no ofrece ninguna ganancia de rendimiento. – developer747