Winforms c# есть база sql. Используй подключения к бд openConnection() closeConnection() GetConnection().
В таблице cells_id_db надо найти все строки, где в столбце gender значение “f”.
Далее нужно создать столько же button в dataGridView1, сколько строк найдено. Располагать кнопки в очередности от меньшего к большему. text button должен быть равен значению ячейки “id”. Кнопки располагать в dataGridView1 слева направо. Когда кнопки достигнут границы таблицы справа – продолжать создавать кнопки на следующую строку по тому же правилу. Кнопки должны открывать Property_form и туда переносить значение “id”, которой принадлежат. Напиши этот код.
csharp
private const string ConnectionString = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyDatabase;Integrated Security=True";
private SqlConnection GetConnection()
{
SqlConnection connection = new SqlConnection();
connection.ConnectionString = ConnectionString;
return connection;
}
private void OpenConnection(SqlConnection connection)
{
connection.Open();
}
private void CloseConnection(SqlConnection connection)
{
connection.Close();
}
В данном примере используется Connection String для подключения к базе данных. Нужно заменить его на свой, который соответствует вам.
2. Загрузка данных из базы данных и создание кнопок:
Далее нам нужно извлечь данные из таблицы cells_id_db, где значение столбца gender равно "f". Мы можем использовать команду SELECT для этой цели.
В коде ниже сначала создается SQL-запрос, затем создается команда SqlCommand с этим запросом и выполнена. Далее результаты запроса помещаются в DataTable и используются для создания кнопок:
csharp
private void LoadDataFromDatabase()
{
using (SqlConnection connection = GetConnection())
{
OpenConnection(connection);
string query = "SELECT id FROM cells_id_db WHERE gender = 'f'";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(reader);
CreateButtonsInDataGridView(dataTable);
reader.Close();
CloseConnection(connection);
}
}
3. Создание кнопок в DataGridView:
Теперь мы создадим метод, который будет принимать DataTable с данными из базы данных и создавать кнопки в DataGridView:
csharp
private void CreateButtonsInDataGridView(DataTable dataTable)
{
dataGridView1.ColumnCount = dataTable.Rows.Count;
dataGridView1.RowCount = (dataGridView1.ColumnCount - 1) / dataGridView1.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) + 1;
for (int i = 0; i < dataTable.Rows.Count; i++)
{
Button button = new Button();
button.Text = dataTable.Rows[i]["id"].ToString();
button.Click += button_Click;
int row = i / dataGridView1.Columns.Count;
int column = i % dataGridView1.Columns.Count;
dataGridView1.Controls.Add(button, column, row);
}
}
private void button_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
string id = button.Text;
PropertyForm propertyForm = new PropertyForm();
propertyForm.Id = id;
propertyForm.ShowDialog();
}
В этом методе мы устанавливаем количество столбцов в DataGridView равное количеству строк в DataTable. Затем мы определяем количество строк, исходя из количества столбцов и ширины видимых столбцов DataGridView. Затем мы проходимся по каждой строке DataTable и для каждой создаем кнопку. Мы устанавливаем значение Text кнопки равным значению столбца "id" текущей строки. Мы также добавляем обработчик события Click для кнопки, чтобы открыть PropertyForm с соответствующим значением "id" из кнопки.
Обработчик события button_Click просто создает новый экземпляр PropertyForm, устанавливает значение Id и отображает его модально.
4. Вызов метода при загрузке формы:
Наконец, нам нужно вызвать метод LoadDataFromDatabase при загрузке формы:
csharp
private void Form1_Load(object sender, EventArgs e)
{
LoadDataFromDatabase();
}
Добавьте этот обработчик события к форме, например, используя конструктор формы:
csharp
public Form1()
{
InitializeComponent();
Load += Form1_Load;
}
Этот код вызовет метод LoadDataFromDatabase при загрузке формы.
В итоге, после выполнения этого кода в DataGridView будут созданы кнопки, соответствующие строкам в таблице cells_id_db, где значение гендера равно "f". Кнопки будут размещены слева направо и сверху вниз. При нажатии на кнопку будет открываться PropertyForm с соответствующим значением Id кнопки.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет