Я бы посоветовал вам попробовать следующие шаги:
отделить код пользовательского интерфейса (чтение и запись текстовых полей, сетки и прочего) от фактического кода базы данных - в какой-то момент выВозможно, вы захотите разделить их на отдельные сборки, даже
используйте параметризованные запросы для обновления ваших данных!Предотвращает атаки с использованием SQL-инъекций и ускоряет работу!Используйте их - всегда - без оправданий
Ваш код будет выглядеть примерно так:
protected void CheckBoxProcess_CheckedChanged(object sender, EventArgs e)
{
bool update = Convert.ToBoolean(DefaultGrid.SelectedValue);
// determine your first name and last name values
string firstName = .......;
string lastName = .......;
UpdateYourData(update, firstName, lastName);
}
private void UpdateYourData(bool isProcessed, string firstName, string lastName)
{
Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/Cabot3");
ConnectionStringSettings connectionString = rootWebConfig.ConnectionStrings.ConnectionStrings["secureodb"];
string updateStmt = "UPDATE dbo.SecureOrders SET processed = @Processed " +
"WHERE fName LIKE @firstName AND lName LIKE @lastName";
using (SqlConnection connection = new SqlConnection(connectionString.ToString()))
using (SqlCommand _update = new SqlCommand(updateStmt, connection))
{
_upate.Parameters.Add("@Processed", SqlDbType.Bit).Value = isProcessed;
_upate.Parameters.Add("@firstName", SqlDbType.VarChar, 100).Value = firstName;
_upate.Parameters.Add("@lastName", SqlDbType.VarChar, 100).Value = lastName;
connection.Open();
_update.ExecuteNonQuery();
connection.Close();
}
}
Теперь я не знаю, действительно ли это решит вашу проблемупроблема - я не мог ничего увидеть с первого взгляда .... но попробуйте - может быть, это даст вам преимущество в изоляции ваших проблем!