Итак, у меня есть этот DataGridView, в котором есть три столбца, в этой дате и имени пользователя извлекаются из моей базы данных SQL Server. Теперь в первом столбце у нас есть битовое поле, которое отображается как CheckBox в моем конструкторе приложений Windows.
Итак, я хочу, чтобы при нажатии кнопки обновления моя программа хочет проверить, был ли установлен какой-либо флажок, если флажок установлен, тогда должна сработать логика обновления.
Если ни один чекбокс не отмечен, ошибку следует выбросить.
public void Update_button_Click(object sender, System.EventArgs e) {
//Check all the checkbox in the first column and if none is selected throw error
If(boolean(checkbox.Row[0]) == true) { //This is an example if-else condition code which i expect
string msg = String.Format("Row: {0}, Column: {1}",
dataGridView1.CurrentCell.Value,
dataGridView1.CurrentCell.ColumnIndex);
MessageBox.Show(msg, "Current Cell");
dataadapter.Update((DataTable) bindingSource1.DataSource);
foreach(DataGridViewRow row in dataGridView1.Rows) {
if (Convert.ToBoolean(row.Cells[0].Value)) {
var myvalue = dataGridView1.Rows[row.Cells[0].RowIndex].Cells[dataGridView1.Columns["dummy_id"].Index].Value.ToString();
var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MYConnectionString"].ConnectionString;
using(var connection = new SqlConnection(connectionString)) {
connection.Open();
using(var command = new SqlCommand(@ "[dbo].[SP]", connection)) {
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@id", SqlDbType.Int).Value = myvalue;
command.ExecuteNonQuery();
}
}
}
}
MessageBox.Show("SAVED");
selected_user_data();
}
// If no checkbox has been selected throw error.
Else {
Messagebox.show("Please select checkbox")
}
Код работает нормально, но я борюсь с условием if, чтобы проверить, установлен ли какой-либо флажок. Я не знаю, как зациклить все флажки в строке и проверить, установлен ли какой-либо флажок.
Пожалуйста, отредактируйте свой вопрос и укажите именно тот вопрос, который вы указали в комментарии. Вопрос должен быть задан в самом посте.
Я сталкивался с этой проблемой раньше, моим решением было добавить все мои элементы графического интерфейса (в вашем случае флажки, текстовые поля в моем случае), чтобы упростить их итерацию. Затем вы можете проверить их состояние:
List<CheckBox> checkbox_list = new List<CheckBox>();
//proceed to manually add all checkboxes to this list upon program initialization
checkbox_list.Add(checkbox1);
//...
//so on until you are done
bool check = false; //we are looking for at least one true, so start with false
for(int i = 0; i < checkbox_list.Count; i++)
{
if (checkbox_list[i].Checked == true)
check = true;
}
if (check == true)
Console.WriteLine("At least one checkbox is checked.");
else
Console.WriteLine("No checkboxes checked.");
//use "check" bool to determine whether to update
Итак, с какой проблемой вы столкнулись с этим кодом /