Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: ADO.NET Добавлено: 17.02.04 19:26  

Автор вопроса:  beast81 | ICQ: 192324197 

У меня есть dataset в котором находиться таблица progr

Я добавляю новую строку в таблицу и хочу обновить БД на sql-сервере через sqldataadapter.

Для этого я выполняю след.действия:

ds.tables("progr").newrow

dim dr as datarow

тра-ля-ля здесь я заполняю DR

ds.tables("progr").rows.add(DR)

sqldataadapter.update(ds, "progr")

По идеи все должно обновиться и в БД на sql должна добавиться новая строка, а фигу.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 sia1



Вопросов: 12
Ответов: 18
 Профиль | | #1 Добавлено: 17.02.04 20:04

Вообщем, ты бы лучше код написал полность, а то так сложно ориентироваться , что у тебя, да как.

Могу только одно сказать, когда  я трах... с этим адо у меня тоже ничего не получалось обновлять и добавлять записи в таблице, пока не подсказали добрые люди, что после того как ты делаешь dataApdater , нужно сделать

CommandBuilde(dataapdater);

  

Ответить

Номер ответа: 2
Автор ответа:
 Alex3



ICQ: 9481061 

Вопросов: 18
Ответов: 132
 Профиль | | #2 Добавлено: 18.02.04 09:55

Чтобы DataAdapter, что-то делал, например, апдейтил, у него должны быть заданы такие свойства как UpdateCommand, InsertCommand, DeleteCommand. Тогда команда Update проапдейтит записи в DataTable помеченые как измененные, удалит, помеченные как удаленные и добавит вставленные.

Ответить

Номер ответа: 3
Автор ответа:
 beast81



ICQ: 192324197 

Вопросов: 11
Ответов: 13
 Профиль | | #3 Добавлено: 18.02.04 10:43

Ну Alex3 спасибо! Вот это совет!

Естественно у меня все эти команды прописаны.Но в том то и дело, что не обновляет.

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 18.02.04 11:13
Какое исключение выдаёт DataAdapter?

Ответить

Номер ответа: 5
Автор ответа:
 sia1



Вопросов: 12
Ответов: 18
 Профиль | | #5 Добавлено: 18.02.04 11:55

то Alex3

>>Чтобы DataAdapter, что-то делал, например, апдейтил, у него >>должны быть заданы такие свойства как UpdateCommand, >>InsertCommand, DeleteCommand. Тогда команда Update >>проапдейтит записи в DataTable помеченые как измененные, >>удалит, помеченные как удаленные и добавит вставленные.

Метод CommandBuilde этим и занимается. Он полностью заменяет все эти команды.

то beast81

Попробую этот метод. Он более удобен в использовании, т.к. он сам прописывает все связи между таб. (для сложных запросов). А так тебе нужно это делать самому и вероятность что ошибка где-то там закралась очень высока. Я бы тебе примерчик выслал, но я пишу на с++ поможет ли он тебе.  

 

Ответить

Номер ответа: 6
Автор ответа:
 beast81



ICQ: 192324197 

Вопросов: 11
Ответов: 13
 Профиль | | #6 Добавлено: 18.02.04 12:01

А как CommandBuilde работает? Я такой командв не знаю, если честно.

Ответить

Номер ответа: 7
Автор ответа:
 Alex3



ICQ: 9481061 

Вопросов: 18
Ответов: 132
 Профиль | | #7 Добавлено: 18.02.04 12:15

Некоторые вместо запросов в коде между прочим хранимые процедуры используют, и с неправильным написанием проблем нет.

beast81, странный ты человек, говоришь "делаю Update - не работает, в чем трабл?".

Что на такое исчерпывающее описание проблемы можно ответить? Только "сделай так что б работало" :-)

Ответить

Номер ответа: 8
Автор ответа:
 sia1



Вопросов: 12
Ответов: 18
 Профиль | | #8 Добавлено: 18.02.04 16:45

Лучше всего показать это на примере. Там всего один параметр -это SqlDataAdapter, вот и все . Посмотри пример, очень легкий и простой. Заносит из массива точки в базу. В MSDN про неё очень хорошо написанно и примерами, на доступном языке :)).

Вот пример:

String *connectString = S"server=localhost;Trusted_Connection=yes;database=3D;";

SqlDataAdapter * sqladapt;

SqlCommandBuilder * sqlbuild;

SqlConnection * conn; //соединение

//указатель на него

vector <CPoint3D>::iterator m_Iter;

//

conn = new SqlConnection(connectString);

sqladapt = new SqlDataAdapter("select * from xyz", connectString);

sqlbuild = new SqlCommandBuilder(sqladapt);

DataSet *data = new DataSet;

sqladapt->Fill(data,"xyz"); //xyz

try

{

DataTable *table = data->Tables->get_Item("xyz");

for (m_Iter = m_cPoints->begin(); m_Iter != m_cPoints->end(); m_Iter++)

{

DataRow *row = table->NewRow();

row->set_Item("Id_Object", __box(idObj));

//point = m_cPoints[i];

row->set_Item("nx", __box(m_Iter->x));

row->set_Item("y", __box(m_Iter->y));

row->set_Item("nz", __box(m_Iter->z));

//row->set_Item("id", __box(id));

table->Rows->Add(row);

row = 0; // снять указатель

}

// Обновили базу

sqladapt->Update(data, "xyz");

}

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам