powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / datagridview+combobox
9 сообщений из 9, страница 1 из 1
datagridview+combobox
    #34684875
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уважаемые кодеры, помогите неопытному человеку как разрулить следующую ситуацию:
на форме combobox, datagridview, button, необходимо в зависимости от выбранного значения в combobox.text выбрать из базы при помощи хранимки с параметром данные и поместить их в datagridview делать это желательно по нажатию кнопки, т.е. если за время использования данных в отсоединенном режиме произошли изменения на серваке, то таким запросом можно было бы обновлять datagridview
код:
private void comboBox1_DropDown(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection(@"data source=SERGM\SQLEXPRESS;initial catalog=informatica;" +
"integrated security=sspi");
try
{
sqlcon.Open();
if (sqlcon.State == ConnectionState.Open)
{
int i;
comboBox1.Items.Clear();
SqlCommand sqlcom = new SqlCommand("sSemestr", sqlcon);
sqlcom.ExecuteNonQuery();
sqlcom.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("sSemestr", sqlcon);
da.Fill(ds, "sSemestr");
DataTable dt = ds.Tables[0];
for (i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = dt.Rows ;
comboBox1.Items.Add(dr[0]);
}
}
}
catch (Exception)
{
if (sqlcon.State != ConnectionState.Open)
{
MessageBox.Show("подключения не существует");
}
}
finally
{
if (sqlcon.State == ConnectionState.Open)
{
sqlcon.Close();
}
}
}
DataSet ds = new DataSet();

private void button1_Click(object sender, EventArgs e)
{
string str = comboBox1.Text;
SqlConnection sqlcon = new SqlConnection(@"data source=SERGM\SQLEXPRESS;initial catalog=informatica;" +
"integrated security=sspi");
//comboBox3.Items.Clear();
SqlCommand sqlcom = new SqlCommand("sNedelya", sqlcon);
ds.Clear();
SqlDataAdapter da = new SqlDataAdapter("sNedelya", sqlcon);

//sqlcom.UpdatedRowSource = UpdateRowSource.Both ;

sqlcon.Open();
try
{

if (sqlcon.State == ConnectionState.Open)
{
dataGridView1.DataSource = null;

// MessageBox.Show(comboBox3.Text);
sqlcom.CommandType = CommandType.StoredProcedure;
sqlcom.Parameters.AddWithValue("@semestr",comboBox1.SelectedText);
sqlcom.ExecuteNonQuery();
da.Fill(ds, "sNedelya");

//DataTable dt = ds.Tables[0];

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "sNedelya";

//comboBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
//dateTimePicker1.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
//dateTimePicker2.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
}
}
catch (Exception)
{
if (sqlcon.State != ConnectionState.Open)
{
MessageBox.Show("подключения не существует");
}
}
finally
{
sqlcon.Close();
}

}

заранее спасибо
...
Рейтинг: 0 / 0
datagridview+combobox
    #34685003
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открой для себя тэг SRC , в неформатированной писанине на 3 экрана мне лично разбираться недосуг
...
Рейтинг: 0 / 0
datagridview+combobox
    #34685018
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уважаемые кодеры, помогите неопытному человеку как разрулить следующую ситуацию:
на форме combobox, datagridview, button, необходимо в зависимости от выбранного значения в combobox.text выбрать из базы при помощи хранимки с параметром данные и поместить их в datagridview делать это желательно по нажатию кнопки, т.е. если за время использования данных в отсоединенном режиме произошли изменения на серваке, то таким запросом можно было бы обновлять datagridview
код:
для обновления combobox:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
 private void comboBox1_DropDown(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection(@"data source=SERGM\SQLEXPRESS;initial catalog=informatica;" +
"integrated security=sspi");
try
{
sqlcon.Open();
if (sqlcon.State == ConnectionState.Open)
{
int i;
comboBox1.Items.Clear();
SqlCommand sqlcom = new SqlCommand("sSemestr", sqlcon);
sqlcom.ExecuteNonQuery();
sqlcom.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("sSemestr", sqlcon);
da.Fill(ds, "sSemestr");
DataTable dt = ds.Tables[ 0 ];
for (i =  0 ; i < ds.Tables[ 0 ].Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
comboBox1.Items.Add(dr[ 0 ]);
}
}
}
catch (Exception)
{
if (sqlcon.State != ConnectionState.Open)
{
MessageBox.Show("подключения не существует");
}
}
finally
{
if (sqlcon.State == ConnectionState.Open)
{
sqlcon.Close();
}
}
}

а это для заполнения datagridview:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
 
DataSet ds = new DataSet();

private void button1_Click(object sender, EventArgs e)
{
string str = comboBox1.Text;
SqlConnection sqlcon = new SqlConnection(@"data source=SERGM\SQLEXPRESS;initial catalog=informatica;" +
"integrated security=sspi");
//comboBox3.Items.Clear();
SqlCommand sqlcom = new SqlCommand("sNedelya", sqlcon);
ds.Clear();
SqlDataAdapter da = new SqlDataAdapter("sNedelya", sqlcon);

//sqlcom.UpdatedRowSource = UpdateRowSource.Both ;

sqlcon.Open();
try
{

if (sqlcon.State == ConnectionState.Open)
{
dataGridView1.DataSource = null;

// MessageBox.Show(comboBox3.Text);
sqlcom.CommandType = CommandType.StoredProcedure;
sqlcom.Parameters.AddWithValue("@semestr",comboBox1.SelectedText);
sqlcom.ExecuteNonQuery();
da.Fill(ds, "sNedelya");

//DataTable dt = ds.Tables[ 0 ];

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "sNedelya";

//comboBox1.Text = dataGridView1.CurrentRow.Cells[ 0 ].Value.ToString();
//dateTimePicker1.Text = dataGridView1.CurrentRow.Cells[ 1 ].Value.ToString();
//dateTimePicker2.Text = dataGridView1.CurrentRow.Cells[ 2 ].Value.ToString();
}
}
catch (Exception)
{
if (sqlcon.State != ConnectionState.Open)
{
MessageBox.Show("подключения не существует");
}
}
finally
{
sqlcon.Close();
}

}
...
Рейтинг: 0 / 0
datagridview+combobox
    #34685186
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогите пожалуйста советом
...
Рейтинг: 0 / 0
datagridview+combobox
    #34685709
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот отработка по этому поводу профайлера:
exec sp_reset_connection
exec sNedelya @semestr=N'осенний'
sNedelya
sNedelya
...
Рейтинг: 0 / 0
datagridview+combobox
    #34685710
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит параметр передается
...
Рейтинг: 0 / 0
datagridview+combobox
    #34685853
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так и не понял, в чем вопрос. в каком месте не работает?

З.Ы. код все равно ужасный
а) с тэгом SRC разобрались, но форматирование также нужная вещь ;-)
б) друг, ты так и будешь в каждом месте, где нужно получить данные с сервера писать один и тот же код в стиле "Создать соединение"-"Сеодинить"-"Проверить есть ли соединение"-"Создать адаптер/комманду"-"Выполнить запрос" и т.д. я понимаю что copy-paste мощный инструмент, но может ты уже извернешься и повторяющийся однотипный код в один класс оформишь? это просто совет.
в) весь код не смотрел, но бросилось в глаза - у комбобокса DataSource есть, не нужно ему строки из таблицы вручную заполнять

В целом, если хочешь помощи, начинай с коротких вопросов в стиле, что и где конкретно и при каком действии работает не так как надо (не работает вовсе). Просто нету никакого времени и желания смотреть кучу кода. По крайней мере у меня.
...
Рейтинг: 0 / 0
datagridview+combobox
    #34719865
r2d2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бросилось в глаза:
catch(Exception)
ты собираешься все исключения обрабатывать?
может лучше хотябы SqlException
...
Рейтинг: 0 / 0
datagridview+combobox
    #34720258
r2d2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДатаСет вытащи как член. один раз его настрой (например в конструкторе)
а дальше тебе останеться только заполнять таблицу в этом датасете.
Комбобокс дейстивтельно можно также на табличку натравить и заполнять какой-нить DataTable.

Надо избегать дублирования алгоритмов, сделай функцию с повторяющимся кодом, как тебе советовали
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / datagridview+combobox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]