powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как получить новый ID добавленной записи?
3 сообщений из 3, страница 1 из 1
Как получить новый ID добавленной записи?
    #36570326
shieldHR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить новый ID добавленной записи?
первичный ключ не автоинкрементный...
если я вычислю как максимальный ID из таблицы +1, то при обдейте датасета, не произойдет ли ошибка из за того. что уже кто то сделал добавление в это поле?
и собственно вопрос... как вообще решаются такого типа проблемы?
ногами не пинать... адо нет только изучаю...
Спасибо за помощь!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
                    //Вставка новой строки
                    object[] newRow = new object[5];
                    //newRow[0] = Guid.NewGuid(); //вот тут как мне получить новый ID?
                    newRow[1] = "99ksdjf";
                    newRow[2] = "99ksdjf";
                    newRow[3] = "99ksdjf";
                    newRow[4] = 99;
полный текст
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace ado
{
    class Program
    {
        static void Main(string[] args)
        {
            //Получаем доступ к БД
            String strConn = "Provider=SQLOLEDB;Server=NNITANALYS02;Database=TEST;UID=sa;Password=123456";
            OleDbConnection dbconn = new OleDbConnection(strConn);
            dbconn.Open();
            DataSet ds = new DataSet();
            OleDbDataAdapter daAdapter = new OleDbDataAdapter("select * from Table_test", dbconn);
            OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(daAdapter);
            daAdapter.Fill(ds);
            dbconn.Close();

            String input;
            do
            {
                //Вводим консольную команду 
                input = Console.ReadLine().ToString();
                // Если команда s, то выводим на экран таблицу
                if (input == "s")
                {
                    // Выводим данные на экран
                    DataTable dt = ds.Tables[0];
                    foreach (DataRow row in dt.Rows)
                    {
                        foreach (Object val in row.ItemArray)
                        {

                            Console.Write(val.ToString() + "; ");
                        }
                        Console.WriteLine();
                    }
                }

                // Если команда i, то делаем вставку данных в таблицу
                if (input == "i")
                {
                    DataTable dt = ds.Tables[0];
                    DataColumn[] colArr = new DataColumn[1];

                    colArr[0] = dt.Columns[0];
                    dt.PrimaryKey = colArr;

                    //Вставка новой строки
                    object[] newRow = new object[5];
                    //newRow[0] = Guid.NewGuid(); //вот тут как мне получить новый ID?
                    newRow[1] = "99ksdjf";
                    newRow[2] = "99ksdjf";
                    newRow[3] = "99ksdjf";
                    newRow[4] = 99;

                    DataRow insert = dt.Rows.Add(newRow);
                }/**/

                //Обновляем DataSet
                dbconn.Open();
                daAdapter.Update(ds);
                dbconn.Close();
            }
            while (input != "q");
            
            dbconn.Close();

        }
    }
}
...
Рейтинг: 0 / 0
Как получить новый ID добавленной записи?
    #36573875
stimpi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если тип айдихи GUID, то его смело на клиенте можно создавать, если тип int, то
Код: plaintext
event OleDbDataAdapter.RowUpdating

http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbdataadapter.rowupdated.aspx
...
Рейтинг: 0 / 0
Как получить новый ID добавленной записи?
    #36582086
Фотография jsmirnoww
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. в клиенте временно пишешь в id отрицательные значения (можно задать в свойствах поля, чтоб автоматом нумеровалось)
2. из хранимой процедуры, которая делает добавление записи в таблицу , возвращаешь вычисленный в ней новый ID
4. выходной параметр таблицы связываешь с полем datatable
3. после передачи изменений на сервере твой отрицательный ID автоматически обновится на тот, что вернула хранимая процедура
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как получить новый ID добавленной записи?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]