Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
23.03.2004, 09:24
|
|||
---|---|---|---|
|
|||
Как добавить новую запись в таблицу? |
|||
#18+
Вот код /VB.NET/ Imports System.Data.OleDb Module Module1 Public conn As OleDbConnection Public ds As DataSet Public cmd As OleDbCommand Public ad As OleDbDataAdapter Public tbl As DataTable Public Sub Connect() conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\data.mdb") conn.Open() cmd = New OleDbCommand() tbl = New DataTable() cmd.Connection = conn cmd.CommandType = CommandType.Text cmd.CommandText = "select nomer,fio from rt" 'адаптер ad = New OleDbDataAdapter() ad.SelectCommand = cmd ds = New DataSet() ad.Fill(ds) tbl = ds.Tables(0) End Sub End Module Как добавить запись в таблицу rt? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 09:45
|
|||
---|---|---|---|
Как добавить новую запись в таблицу? |
|||
#18+
Добавим запись в tbl Код: plaintext 1. 2. 3. 4. 5.
или Код: plaintext 1. 2. 3. 4. 5.
А теперь скинем изменения в БД в rt в данном случае Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 10:06
|
|||
---|---|---|---|
|
|||
Как добавить новую запись в таблицу? |
|||
#18+
Спасибо за помощь огромное! Ругается вот на эту строку ad.Update(ds) Dim dtr As DataRow dtr = tbl.NewRow dtr(0) = 99999 dtr(1) = "Пупкин" tbl.Rows.Add(dtr) ad.Update(ds) ds.AcceptChanges() MsgBox("OK") Ругань: An unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll Additional information: Update requires a valid InsertCommand when passed DataRow collection with new rows. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 10:17
|
|||
---|---|---|---|
Как добавить новую запись в таблицу? |
|||
#18+
Конечно будет ругаться ведь вы не задали DataAdapterу Insert комманду, также необходимо задать Delete, Update комманду. А метод Update просто смотрит какие изменения произошли в DataSet - и соответственно направляет изменившие строчки Insertу, Update у и Deleteу. Соответственно надо создать комманды и передать DataAdapterу: ad.InsertCommand, ad.DeleteCommand, ad.UpdateCommand ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 10:26
|
|||
---|---|---|---|
|
|||
Как добавить новую запись в таблицу? |
|||
#18+
Ага. ad.InsertCommand = cmd Ошибки теперь не дает , но запись не добавляет новую. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 10:35
|
|||
---|---|---|---|
Как добавить новую запись в таблицу? |
|||
#18+
А в cmd который ты добавляешь в InsertCommand в cmd.CommandText = "insert bla, bla , bla" Insert Statement написал или нет или Select стоит :-) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 10:49
|
|||
---|---|---|---|
|
|||
Как добавить новую запись в таблицу? |
|||
#18+
На DAO/ADO было проще... Чуть Чуть осталось. Селект стоит. Что указать в инсерте cmd.text="insert ????" ad.InsertCommand = cmd ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 11:05
|
|||
---|---|---|---|
|
|||
Как добавить новую запись в таблицу? |
|||
#18+
2 sa Последний рывок остался. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 11:13
|
|||
---|---|---|---|
Как добавить новую запись в таблицу? |
|||
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Только укажи свой YourType, свой YourSize Если же хочешь попроще то используй мастер DataAdapter если у тебя VS.NET. Он тебе и Update и Delete и Select и Insert автоматом сделает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 11:33
|
|||
---|---|---|---|
|
|||
Как добавить новую запись в таблицу? |
|||
#18+
Есть , получилось. SA спасибо. Вот что у меня получилось. Добавление записи в акесовскую базу (может и пригодиться кому нибудь) Imports System.Data.OleDb Module Module1 Public conn As OleDbConnection Public ds As DataSet Public cmd As OleDbCommand Public ad As OleDbDataAdapter Public tbl As DataTable Public Sub Connect() 'соединение conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\data.mdb") conn.Open() 'команда cmd = New OleDbCommand() tbl = New DataTable() cmd.Connection = conn cmd.CommandType = CommandType.Text cmd.CommandText = "select nomer,fio from rt" 'адаптер ad = New OleDbDataAdapter() ad.SelectCommand = cmd ds = New DataSet() ad.Fill(ds) 'заполняем DataSet tbl = ds.Tables(0) End Sub End Module 'добавление записи Private Sub ButtonAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Add.Click Dim dtr As DataRow cmd.CommandText = "INSERT INTO rt(nomer, fio) VALUES (@nomer, @fio)" cmd.Parameters.Add(New OleDbParameter("@nomer", OleDbType.Char, 5, "nomer")) cmd.Parameters.Add(New OleDbParameter("@fio", OleDbType.Char, 15, "fio")) ad.InsertCommand = cmd dtr = tbl.NewRow dtr("nomer") = "12345" dtr("fio") = "Иванов" tbl.Rows.Add(dtr) ad.Update(ds) ds.AcceptChanges() MsgBox("OK") End Sub В общем то как то все запутано . Надо прописывать команды всякие , адаптеры. Гора всяких фишек ради простого действия. Все таки в DAO было как то получше , законнектился к базе, взял рекордсет и пихай туда что хочешь, а тут... АДО.НЕТ пока меня не радует. Еще раз спасибо , правда хотелось бы сразу узнать как удалять запись и обновлять. Но это позже. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 11:43
|
|||
---|---|---|---|
Как добавить новую запись в таблицу? |
|||
#18+
>В общем то как то все запутано . Надо прописывать команды всякие , адаптеры. Гора всяких фишек ради простого действия. Все таки в DAO было как то получше , законнектился к базе, взял рекордсет и пихай туда что хочешь, а тут... АДО.НЕТ пока меня не радует. А потому что в ADO.NET основное -это концепция отсоединенного источника данных. То есть можно данные из БД слить, закрыть соединение, ОТСОЕДИННЕНО обработать, и а потом через UPDATE передать все измения(вставить, удалить, изменить). Если все кажется так запутанно то настраивай DataAdapter прямо из Visual Studio .NET, только все равно желательно посмотреть что дизайнер там творит. Еще можно комманды генерировать автоматически но этот способ лично я пытаюсь всегда избегать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 12:19
|
|||
---|---|---|---|
|
|||
Как добавить новую запись в таблицу? |
|||
#18+
Как только грузанул записи в гриды можно рубить соединение с базой. И открывать его когда нужно делать добавление, изменение, обновление или выборки из др. мест. Идея сама по себе мне нравится. Надо написать класс для добавления записей. Объекту класса указывать в какую таблицу пихать записи и в какие поля с типами. Уж слишком геморно это делать чистоганом через АДО.НЕТ. Если получится более менее рулезный класс - сюда его и пихну. SA подкинь идейки для написания такого класса. Вообще ты молодец, отзывчивый и терпеливый. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.03.2004, 13:38
|
|||
---|---|---|---|
Как добавить новую запись в таблицу? |
|||
#18+
>Надо написать класс для добавления записей. Объекту класса указывать в какую таблицу пихать записи и в какие поля с типами. Уж слишком геморно это делать чистоганом через АДО.НЕТ. Простенький класс такой написать не сложно. Идей вообще полно, начиная от создание своего генератора кода до использования Reflection (MSDN Magazine 2002 August если мне не изменяет память). Также есть и платные штуки, например Deklarit 2 (SQL и Oracle) (А в 3 версии помоему появилась поддержка Access). Который за несколько секунд за тебя сделает килотонны кода. P.S. Я в большинстве своем предпочитаю все писать, вручную с генерацией своих исключений, их протоколировании.... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=17&mobile=1&tid=1354183]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 135ms |
0 / 0 |