Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.219.95.244] |
|
Сообщ.
#1
,
|
|
|
Таблица в Accesse - два поля: Поле1, Поле2.
<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> Типа все выполняется, а вот значений в базе нету.... |
Сообщ.
#2
,
|
|
|
Никогда не юзал ОлеДБ, так что вполне могу говорить глупость, но чисто внешне не хватает коммита. Он там где-то автоматом что-ли делается?
|
Сообщ.
#3
,
|
|
|
вот мой кусок по кннекту (и обновлению) к SQL Server, можешь глянуть, а в твоем копаться времени нет.
|
Сообщ.
#4
,
|
|
|
удалено. Пожалуйста, следи за своим языком. 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(); |
Сообщ.
#5
,
|
|
|
to: kl что за коммит?? Вроде по книжке более ничего не надо, а вот все равно не работает ???
|
Сообщ.
#6
,
|
|
|
to: kl коммит это типа транзакции, когда используешь OleDb тоже надо транзакции использовать объясните что не верно в моем коде???
|
Сообщ.
#7
,
|
|
|
Если делать 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] |
Сообщ.
#8
,
|
|
|
2hFoxy: А ты уверен, что твой код работает в том виде в котором ты его привёл
|
Сообщ.
#9
,
|
|
|
а как студия сгенерирует мне адаптер??? Как это делается??
|
Сообщ.
#10
,
|
|
|
Все дагнал всем спасибо)))
|
Сообщ.
#11
,
|
|
|
ХА конечно работает ;D
|
Сообщ.
#12
,
|
|
|
andrey: я думаю что ты догнал что Connect и Update находятся в разных методах ;D
|