На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Почему не обновляется база???
    Таблица в Accesse - два поля: Поле1, Поле2.
    ExpandedWrap disabled
      <br>                  OleDbConnection conn;<br>                  OleDbDataAdapter adapt;<br>                  DataSet dataset = new DataSet();<br>                  string ConnectionString;<br>                  ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"+@"data source = C:\List\db1.mdb";<br>                  conn = new OleDbConnection(ConnectionString);<br>                  conn.Open();<br>                  adapt = new OleDbDataAdapter("SELECT * FROM Patient",conn);<br>                  adapt.Fill(dataset,"Patient");<br>            <br>                  DataTable dt = dataset.Tables["Patient"];<br>                  DataRow row = dt.NewRow();<br>                  <br>                  row["Поле1"]="200";<br>                  row["Поле2"]="200";<br><br>                  dt.Rows.Add(row);<br>                  row.AcceptChanges();//Без этого вообще не хочет работать...<br>                  adapt.Update(dataset,"Patient");<br>                  conn.Close();<br>


    Типа все выполняется, а вот значений в базе нету....
      Никогда не юзал ОлеДБ, так что вполне могу говорить глупость, но чисто внешне не хватает коммита. Он там где-то автоматом что-ли делается?
        вот мой кусок по кннекту (и обновлению) к SQL Server, можешь глянуть, а в твоем копаться времени нет.
          удалено. Пожалуйста, следи за своим языком. kl забыл код кинуть.

          // connect
          string conn =
                                 "Provider=SQLOLEDB;server=localhost;Trusted_Connection=yes;database=TestDb";
                           string cmd = "Select * from Users";

                           oleConn= new OleDbConnection(conn);
                           oleAdapt = new OleDbDataAdapter(cmd, oleConn);

                           ds = new DataSet("OleDs");
                           oleAdapt.Fill(ds);
                           Grid.DataSource = ds.Tables[0].DefaultView;
                           GC.Collect();
          // update
          OleDbCommandBuilder custCB = new OleDbCommandBuilder(oleAdapt);
                           oleAdapt.Update(ds);
                           
                           ds = new DataSet();
                           oleAdapt.Fill(ds);
                           Grid.DataSource = ds.Tables[0].DefaultView;
                           GC.Collect();

          Сообщение отредактировано: kl -
            to: kl что за коммит?? Вроде по книжке более ничего не надо, а вот все равно не работает ???
              to: kl коммит это типа транзакции, когда используешь OleDb тоже надо транзакции использовать объясните что не верно в моем коде???
                Если делать AcceptChanges то точняк в базу ничего не уйдёт, поскольку он только меняет RowState на Unchanged, т.е. Update ничего не отправляет в базу.

                Пореверь RowState до Update, он должен быть Added.


                О, я въехал в чём дело!!!!

                У тебы DataAdater не поддерживает обновление!
                Надо заполнить InsertCommand, UpdateCommand и DeleteCommand. Подробности в MSDN, но если хочешь без гимора, то пусть студия тебе сгенерит адаптер. Еще можно воспользоваться утилкой DataAdapterBuilder от книги по ADO.NET (130K)[url]http://ve-2-00.ru/DataAdapter Builder.msi[/url]
                  2hFoxy: А ты уверен, что твой код работает в том виде в котором ты его привёл
                    а как студия сгенерирует мне адаптер??? Как это делается??
                      Все  дагнал всем спасибо)))
                        ХА конечно работает   ;D
                          andrey: я думаю что ты догнал что Connect и Update находятся в разных методах  ;D
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0259 ]   [ 16 queries used ]   [ Generated: 27.04.24, 15:29 GMT ]