ADO.net. В DataSet — е находится таблица с данными полученная в результате запроса к БД. Как в добавить в DataSet ещё одну строку в таблицу DataSet — а не имея подключения к БД. Все записи в таблице должны быть уникальными.
Здравствуйте, Аноним, Вы писали:
А>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);
}
Здравствуйте, 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 запрос и без коннекта к базе данных?
Здравствуйте, <Аноним>, Вы писали:
А>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 >>