powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / обновить datagridview
4 сообщений из 4, страница 1 из 1
обновить datagridview
    #34676420
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогите справиться со след проблемой:
на форме необходимо несколько раз обновлять содержимое dataGridView1

private void frm_raspis_sem_Load(object sender, EventArgs e)
{
...
SqlCommand sqlcom = new SqlCommand("sSemestr", sqlcon);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("sSemestr", sqlcon);
sqlcom.CommandType = CommandType.StoredProcedure;

try
{
sqlcon.Open();
if (sqlcon.State == ConnectionState.Open)
{
sqlcom.ExecuteNonQuery();
da.Fill(ds, "sSemestr");


dataGridView1.AutoGenerateColumns = true;
//DataTable dt = ds.Tables[0];
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "sSemestr";

comboBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
dateTimePicker1.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
dateTimePicker2.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();

}
...

затем необходимо в этих самых comboBox1.Text
dateTimePicker1.Text
dateTimePicker2.Text

обновить значения и чтоб затем обновились соответствующие строки в dataGridView1 , для этого использую


private void button1_Click(object sender, EventArgs e)
{
...
SqlCommand sqlcom = new SqlCommand();
sqlcom.CommandText = "uSemestr";
sqlcom.Connection = sqlcon;
sqlcom.CommandType = CommandType.StoredProcedure;
sqlcom.Parameters.Add(
"@date_begin",
SqlDbType.SmallDateTime).Value = dateTimePicker1.Text;
sqlcom.Parameters.Add(
"@date_end",
SqlDbType.SmallDateTime).Value = dateTimePicker2.Text;
sqlcom.Parameters.Add(
"@semestr",
SqlDbType.NVarChar).Value = comboBox1.Text;
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("uSemestr", sqlcon);
//DataTable dt = ds.Tables["uSemestr"];
sqlcom.UpdatedRowSource = UpdateRowSource.OutputParameters;
try
{
sqlcon.Open();
if (sqlcon.State == ConnectionState.Open)
{

sqlcom.ExecuteNonQuery();

//dataGridView1.DataMember = "tSemestr";

da.Fill(ds, "tSemestr");
//ds.AcceptChanges();

dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "tSemestr";


}
...
но естественно ничего не получается, помогите маленьким советом
...
Рейтинг: 0 / 0
обновить datagridview
    #34678159
mozart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так подойдет?
Поле semestr - ключ в таблице sSemestr.

private string cs = "Data Source=xxxxx;Initial Catalog=xxxxx;Integrated Security=True";
private DataSet ds;
private void MainForm_Load(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection(cs);
ds = new DataSet();
string s = "select * from sSemestr";
SqlDataAdapter da = new SqlDataAdapter(s, sqlcon);

try
{
sqlcon.Open();
if (sqlcon.State == ConnectionState.Open)
{
da.Fill(ds, "sSemestr");

dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "sSemestr";

foreach (DataRow rrv in ds.Tables["sSemestr"].Rows)
{
comboBox1.Items.Add(rrv["semestr"]);
}

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
{
MessageBox.Show("Something!!");
}
}

private void button2_Click(object sender, EventArgs e)
{
string sem = comboBox1.Text;
string strfilter = "semestr = '" + sem + "'";
DataTable dt = ds.Tables["sSemestr"];
DataRow[] filterrows = dt.Select(strfilter);
DataRow rowtoupdate = filterrows[0];
string sc = "select * from sSemestr where semestr = '" + sem + "'";
SqlDataAdapter sqlA = new SqlDataAdapter(sc, cs);
SqlCommandBuilder sqlB = new SqlCommandBuilder(sqlA);

try
{
rowtoupdate.BeginEdit();
rowtoupdate["date_begin"] = dateTimePicker1.Text;
rowtoupdate["date_end"] = dateTimePicker2.Text;
rowtoupdate.EndEdit();
sqlA.UpdateCommand = sqlB.GetUpdateCommand();
sqlA.Update(ds, "sSemestr");
ds.Tables["sSemestr"].AcceptChanges();
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
...
Рейтинг: 0 / 0
обновить datagridview
    #34678703
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
благодарю
...
Рейтинг: 0 / 0
обновить datagridview
    #34679955
serghey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разрулил в общем книжным способом, хранимка на обновление не выводит набор данных а просто nonquery, затем создал:
private void select()
{
SqlConnection sqlcon = new SqlConnection(str);
//comboBox1.Items.Clear();
SqlCommand sqlcom = new SqlCommand("sSemestr", sqlcon);
//DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("sSemestr", sqlcon);
sqlcom.CommandType = CommandType.StoredProcedure;

try
{
sqlcon.Open();
if (sqlcon.State == ConnectionState.Open)
{
comboBox1.Items.Clear();
sqlcom.ExecuteNonQuery();
da.Fill(ds, "sSemestr");

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
DataRow dr = ds.Tables[0].Rows ;
comboBox1.Items.Add(dr[0]);
}

dataGridView1.AutoGenerateColumns = true;
//DataTable dt = ds.Tables[0];
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "sSemestr";
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
{
if (sqlcon.State == ConnectionState.Open)
{
sqlcon.Close();
}
sqlcon.Dispose();



}

и наконец обновление произвожу:
private void button1_Click(object sender, EventArgs e)
{
ds.Clear();
SqlConnection sqlcon = new SqlConnection(str);
//comboBox1.Items.Clear();
SqlCommand sqlcom = new SqlCommand();
sqlcom.CommandText = "uSemestr";
sqlcom.Connection = sqlcon;
sqlcom.CommandType = CommandType.StoredProcedure;
sqlcom.Parameters.Add(
"@date_begin",
SqlDbType.SmallDateTime).Value = dateTimePicker1.Text;
sqlcom.Parameters.Add(
"@date_end",
SqlDbType.SmallDateTime).Value = dateTimePicker2.Text;
sqlcom.Parameters.Add(
"@semestr",
SqlDbType.NVarChar).Value = comboBox1.Text;

SqlDataAdapter da = new SqlDataAdapter("uSemestr", sqlcon);

//DataTable dt = ds.Tables[0];
sqlcom.UpdatedRowSource = UpdateRowSource.None;
try
{
sqlcon.Open();
if (sqlcon.State == ConnectionState.Open)
{

sqlcom.ExecuteNonQuery();

//dataGridView1.DataMember = "tSemestr";
da.Fill(ds, "uSemestr");
dataGridView1.DataSource = ds;
dataGridView1.AutoGenerateColumns = true;


}


}
catch (Exception)
{
if (sqlcon.State != ConnectionState.Open)
{
MessageBox.Show("подключения не существует");
}
}
finally
{
if (sqlcon.State == ConnectionState.Open)
{

sqlcon.Close();
select();
}



}
}

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


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