Заполнение DataSet без подключения к БД
От: Аноним  
Дата: 14.07.04 15:20
Оценка:
ADO.net. В DataSet — е находится таблица с данными полученная в результате запроса к БД. Как в добавить в DataSet ещё одну строку в таблицу DataSet — а не имея подключения к БД. Все записи в таблице должны быть уникальными.
Re: Заполнение DataSet без подключения к БД
От: lozzy  
Дата: 15.07.04 15:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>ADO.net. В DataSet — е находится таблица с данными полученная в результате запроса к БД. Как в добавить в DataSet ещё одну строку в таблицу DataSet — а не имея подключения к БД. Все записи в таблице должны быть уникальными.


int value = 1;
DataTable table = DataSet["TableName"];
DataRow row = table.NewRow();

DataRow[] tempRows = table.Select("blablabla = "+value.ToString());
if (tempRows.Length == 0) 
{
   row["blablabla"] = value;
   table.Rows.Add(row);
}
Re[2]: Заполнение DataSet без подключения к БД
От: Аноним  
Дата: 15.07.04 23:42
Оценка:
Здравствуйте, lozzy, Вы писали:

L>Здравствуйте, Аноним, Вы писали:


А>>ADO.net. В DataSet — е находится таблица с данными полученная в результате запроса к БД. Как в добавить в DataSet ещё одну строку в таблицу DataSet — а не имея подключения к БД. Все записи в таблице должны быть уникальными.


L>
L>int value = 1;
L>DataTable table = DataSet["TableName"];
L>DataRow row = table.NewRow();

L>DataRow[] tempRows = table.Select("blablabla = "+value.ToString());
L>if (tempRows.Length == 0) 
L>{
L>   row["blablabla"] = value;
L>   table.Rows.Add(row);
L>}
L>


Всё ясно. А как быть если в DataSet — е две таблицы в первой той, что уникальная хранится список клиентов, во второй список заказов у клиентов, каждый клиент может иметь несколько заказов. Необходимо добавить новый заказ, т.е. проверить есть ли уже такой клиент или нет, если нет то добавить нового клиента, если есть то извлеч его ID, затем занести текст заказа во вторую таблицу с ID клиента. Как всё это сделать оптимальнее? Если был бы коннект к базе данных я бы создал новый экземпляр SQLCommand и выполнил SQL запрос (т.е. Insert Into и т.д.), или можно выполнить SQL запрос и без коннекта к базе данных?
Re[3]: Заполнение DataSet без подключения к БД
От: lozzy  
Дата: 16.07.04 06:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всё ясно. А как быть если в DataSet — е две таблицы в первой той, что уникальная хранится список клиентов, во второй список заказов у клиентов, каждый клиент может иметь несколько заказов. Необходимо добавить новый заказ, т.е. проверить есть ли уже такой клиент или нет, если нет то добавить нового клиента, если есть то извлеч его ID, затем занести текст заказа во вторую таблицу с ID клиента. Как всё это сделать оптимальнее? Если был бы коннект к базе данных я бы создал новый экземпляр SQLCommand и выполнил SQL запрос (т.е. Insert Into и т.д.), или можно выполнить SQL запрос и без коннекта к базе данных?


А самому на основе примера написать слабо ? К тому же, куда ты собрался сохранять измененные данные, если соединения с сервером нету ? Можешь попробовать заюзать локальную базюку какую-нибудь, типа акцесса.
Re: Заполнение DataSet без подключения к БД
От: GuinPin  
Дата: 20.07.04 05:59
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>ADO.net. В DataSet — е находится таблица с данными полученная в результате запроса к БД. Как в добавить в DataSet ещё одну строку в таблицу DataSet — а не имея подключения к БД. Все записи в таблице должны быть уникальными.

dim tmpDataRow as DataRow = myDataTable.NewRow()
tmpDataRow("my_field")=myValue
myDataTable.Rows.Add(tmpDataRow)
'или
'myDataSet.Tables("myTable").Rows.Add(tmpDataRow)

Это что касается добавления строки. Кстати, таблицы DataTable всегда отключены от БД.
Что касается уникальности записей, то при отпределении таблицы:
dim myDataTable as new DataTable
myDataTable.Columns.Add("id",GetType(Integer))
myDataTable.Columns("id").AutoIncrement=True 'автоинкремент
myDataTable.Columns("id").Unique=True 'обеспечение уникальности (стоит учитывать, что таблица отключена от источника данных!)
myDataTable.Columns("id").AllowDBNull=False 'запрет неопределенных значений


Кстати, имеется механизм поддержки отношений между таблицами датасета
... << RSDN@Home 1.1.3 stable >>
С уважением, Сошников Иван
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.