Очередная проблема в освоении .NET технологий. Создаю приложение БД, подключил базу, через DataAdapter вытащил таблицу, добавил в нее позицию, передал изменения в БД и вышел... Все отработало, вроде бы, точно сказать не могу, потому что сам не до конца понимаю... но позиция добавляется...
Вопрос в следующем.... обязательно каждый раз декларировать структуру таблицы для команд Insert, Update, Delete??? Это очень неудобно по сравнению с "бывшим ADO". Согласен, что скорость общения с БД увеличиться, но если у меня 100 таблиц??? Как можно оптимизировать код работы с БД в новой технологии???
- Код: Выделить всё
Public daDB As OleDbDataAdapter, objTable As New DataTable(), objRow As DataRow, objSet As New DataSet(), strObj As Object
dim masFileRead as string ="Provider=SQLOLEDB;Data Source=СЕРВЕР;Initial Catalog=БАЗА ДАННЫХ;Integrated Security=SSPI;Connect Tirneout=120;OLEDB Services=-4;"
daDB = New OleDbDataAdapter("select * from dbo.tbl_Z_managers", masFileRead)
daDB.Fill(objTable)
objTable.Rows.Add(New Object() {Nothing, "erve", "ferfer", "ege4ger", "gervearg", 1})
Form1.DataGridView1.DataSource = objTable
daDB.InsertCommand = CreateDataAdapterlnsertCommand()
daDB.Update(objTable)
'вот тут описание таблицы на вставку... неужеле для каждой таблицы такое делать????
Private Function CreateDataAdapterlnsertCommand() As OleDbCommand
Dim cn As New OleDbConnection(masFileRead(1))
Dim strSQL As String
strSQL = "INSERT INTO dbo.tbl_Z_managers (m_Name, m_Phone, m_Comment, m_PWD, is_Valid) VALUES (?, ?, ?, ?, ?)"
Dim cmd As New OleDbCommand(strSQL, cn)
Dim pc As OleDbParameterCollection = cmd.Parameters
pc.Add("m_Name", OleDbType.VarChar, 0, "m_Name")
pc.Add("m_Phone", OleDbType.VarChar, 0, "m_Phone")
pc.Add("m_Comment", OleDbType.VarChar, 0, "m_Comment")
pc.Add("m_PWD", OleDbType.VarChar, 0, "m_PWD")
pc.Add("is_Valid", OleDbType.Integer, 0, "is_Valid")
Return cmd
End Function