[C#, ASP.NET]Данные в DataSet не изменяются

evgen5555

Почему данные в DataSet никоим образом не изменяются ни при изменении DataRow=ds.Rows[xxx], ни при ds.Rows[xxx][yyy]?
Что здесь надо поправить?

private void ShitDataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TextBox nameBox = (TextBoxe.Item.Cells[1].Controls[0]);
DataRow dr = dsDataSet.tbl_shit.Rows[e.Item.ItemIndex];
dr.BeginEdit;
dr.ItemArray[1] = deptNameBox.Text;
dr.EndEdit;
dr.AcceptChanges;
//bool bFlag = dsDataSet.HasChanges;
sqlConnection.ConnectionString = ConfigurationSettings.AppSettings["ShittySQLConnection"];
sqlConnection.Open;
sqlDataAdapter.Update(dsDataSet);
sqlConnection.Close;
// dsDataSet.AcceptChanges;
ShitDataGrid.EditItemIndex = -1;
Session["dsShit"] = dsDataSet;
ShitDataGrid.DataBind;
}

МСДН не рулит - там все разбито на микроскопические разделы, из которых трудно что-либо составить.
FAQ GDN - не помог (слишком уж заточенный свой Dat они в примере используют).
Google вообще какую-то чушь несет.
Может, здесь помогут?

Dasar

AcceptChanges - убери, ее обычно функция adapter.Update делает, подтверждая, что изменения данных отражены в базе

evgen5555

А как отловить результат?
Почему данные не изменяются, т.е. поведение программы становится непредсказуемым, а исключения не возникает?

evgen5555

Update не срабатывает, Profiler не видит запроса.

evgen5555

Извиняюсь, UPDATE пришёл.
Только почему-то со старыми значениями...

Dasar

Запости последний вариант функции

evgen5555

То же, только без строки с AcceptChanges.

Dasar

попробуй еще BeginEdit и EndEdit убрать

evgen5555

В этом случае метод Update вообще не отсылает запрос на сервер.

Dasar

Что-то ты делаешь неправильно.
Вот такой код работает:

DataTable table = new DataTable;
//получаем данные
using (SqlConnection con = new SqlConnection (connectString
using (SqlDataAdapter data = new SqlDataAdapter ("SELECT * FROM MyTable", con
{
con.Open;
data.Fill(table);
}

//меняем данные
table.Rows[0]["MyColumn"] = myValue;

//кладем данные обратно.
using (SqlConnection con = new SqlConnection (connectString
using (SqlDataAdapter data = new SqlDataAdapter ("SELECT * FROM MyTable", con
using (new SqlCommandBuilder(data
{
con.Open;
data.Update(table);
}


6yrop

может ты не все AcceptChanges убрал?
вот это надо убрать
dr.AcceptChanges;
может и еще что не правильно...., попробуй пока так
А вообще MSDN следует все таки почитать

evgen5555

Все, спасибо, я уже разрулил ситуацию, вставив вместо dr.ItemArray[1] dr["vch_super_column"]
Оставить комментарий
Имя или ник:
Комментарий: