VB.net: как обновить базу данных из datagridview
Я пытаюсь прочитать datagridview и опубликовать изменения обратно в базу данных SQL. У кого-нибудь есть какой-нибудь простой код, который будет работать? Я новичок в этом деле. VB.net.
[смущенный]
У меня есть соединение доступа с textbox в качестве фидера данных для базы данных, измените его на SQL, если хотите.
Код таков:
Imports System Imports System.Data Imports System.Data.OleDb Public Class Form2 Dim conaccess As New OleDbConnection Dim conreader As OleDbDataReader Dim concmd As New OleDbCommand Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGridView1.EditMode = False conaccess.ConnectionString = "Provider=Microsoft.jet.oledb.4.0;data source=d:\vijay.mdb" conaccess.Open() loadGrid() End Sub Private Sub loadGrid() Dim access As String access = "select * from vijay" Dim DataTab As New DataTable Dim DataAdap As New OleDbDataAdapter(access, conaccess) DataAdap.Fill(DataTab) DataGridView1.DataSource = DataTab End Sub Private Sub new_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles new_btn.Click Dim no As String no = "select Max(ID) from vijay" Dim concmd As New OleDbCommand(no, conaccess) conreader = concmd.ExecuteReader If (conreader.Read) Then If (IsDBNull(conreader(0))) Then id_txt.Text = "1" Else id_txt.Text = conreader(0) + 1 End If name_txt.Clear() branch_txt.Clear() age_txt.Clear() class_txt.Clear() gen_txt.Clear() End If End Sub Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick Dim i As Integer i = DataGridView1.CurrentRow.Index Try id_txt.Text = DataGridView1.Item(0, i).Value name_txt.Text = DataGridView1.Item(1, i).Value class_txt.Text = DataGridView1.Item(2, i).Value gen_txt.Text = DataGridView1.Item(3, i).Value branch_txt.Text = DataGridView1.Item(4, i).Value age_txt.Text = DataGridView1.Item(5, i).Value Catch ex As Exception End Try End Sub Private Sub del_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles del_btn.Click Dim delcmd As New OleDbCommand("delete from vijay where id=" & id_txt.Text & " ", conaccess) delcmd.ExecuteNonQuery() MsgBox("Record is deleted") loadGrid() id_txt.Clear() name_txt.Clear() branch_txt.Clear() age_txt.Clear() class_txt.Clear() gen_txt.Clear() End Sub Private Sub save_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save_btn.Click Dim access As String = String.Format("INSERT INTO vijay (Name,Class,Branch,Gender,Age) VALUES('{0}','{1}','{2}','{3}','{4}')", name_txt.Text, class_txt.Text, branch_txt.Text, gen_txt.Text, age_txt.Text) concmd.Connection = conaccess concmd.CommandText = access concmd.ExecuteNonQuery() MsgBox("Record Successfully Saved") loadGrid() id_txt.Clear() name_txt.Clear() branch_txt.Clear() age_txt.Clear() class_txt.Clear() gen_txt.Clear() End Sub Private Sub up_btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles up_btn.Click Dim access As String access = "UPDATE vijay SET Name = '" & name_txt.Text & "', Age = '" & age_txt.Text & "', Gender ='" & gen_txt.Text & "' , Branch ='" & branch_txt.Text & "' , Class = '" & class_txt.Text & "' where id=" & id_txt.Text & "" Dim cmd As New OleDbCommand(access, conaccess) cmd.ExecuteNonQuery() loadGrid() id_txt.Clear() name_txt.Clear() branch_txt.Clear() age_txt.Clear() class_txt.Clear() gen_txt.Clear() End Sub End Class
Всегда оборачивайте свой код в предварительные теги. Это делает вопрос читаемым, поскольку он форматирует его.
После загрузки данных из DBase с ключом поиска (транзакция No), как я хочу редактировать данные в DgView с несколькими строками и чем я сохраняю снова после изменения значения или редактирования в DgV
Извините за мой английский
Привет Роджер,
Когда люди просят "простой код", на него невозможно ответить. Весь код адаптирован к индивидуальным потребностям, и никто не будет иметь именно тот код, который вы хотите. (И они не создадут его для вас, если вы сами не захотите приложить к нему некоторые усилия.) Лучший способ начать такой проект-прочитать несколько статей о том, что вы делаете. Вы можете искать в codeproject статьи, например этот.[^Затем, когда вы реализуете код, который вы нашли в статье, если у вас возникнут проблемы, опубликуйте свой код и сообщения об ошибках, а также описание того, что делает ваша программа и что вы хотите, чтобы она делала. Тогда мы сможем вам помочь. Надеюсь, это даст вам хорошее место для начала.
Я сделал проект в visual basic 2010 и sql server, я хочу обновить запись в party master в другой форме, где при нажатии на кнопку update откроется другая форма обновления и там в dtagrid будут представлены все записи таблицы данных , на этой форме есть три кнопки: update, delete, cancel, я просто хочу, чтобы при нажатии на кнопку update после редактирования строки данных данные сохранялись в datagrid и то же самое в таблицу данных в sql server.
код формы обновления приведен ниже.
Система Импорта.Данных.Поставщики sqlclient
Система Импорта
Система Импорта.Сведения
Импортирует System.Data.Для oledb
Система Импорта.Окна.Формы.Практическое руководство
Публичный класс frmupdate
Наследует Систему.Окна.Форм.Форма
Дим CNN как новое sqlconnection("источник данных=.\Именем sqlexpress;ключевое слово attachdbfilename=С:\Пользователи\документы\админ\визуальная студия 2010\проекты\Вриндаван REALTECH\Вриндаван REALTECH\Вриндаван.МДФ;Комплексная безопасность=true;в пользовательский экземпляр=true в ")
Dim cmd как новая SqlCommand
Дим ДР в качестве объекта sqldatareader
Dim da As SqlDataAdapter
Dim ds как новый набор данных()
Частная суб frmupdate_Load(как byval отправителя как объект, как byval E Как системы.EventArgs) Обрабатывает Меня. Load
'TODO: эта строка кода загружает данные в таблицу' VrindavanDataSet3.p_master'. Вы можете переместить или удалить его по мере необходимости.
Me.P_masterTableAdapter.Заполнить(Мне.VrindavanDataSet3.p_master)
Dim sql как строка
Попробуй
телеканал CNN.Открыть()
Dim da As SqlDataAdapter
Dim ds как новый набор данных()
среда SQL = "выбрать * из p_master;"
da = New SqlDataAdapter(sql, cnn)
да.Заполнить(ДС, "p_master")
DataGridView1.Источник данных = ДС
DataGridView1.DataMember = "p_master"
DataGridView1.Источник данных = ДС.DefaultViewManager
телеканал CNN.Рядом()
Поймать ex как исключение
MsgBox(ex. Message, MsgBoxStyle.Критично, Я. Текст)
Конец Попытки
Конец Подводной Лодки
Private Sub btnupdate_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает btnupdate.Щелчок
ДС.Столы("p_master").Метод acceptchanges()
da. Update(ds, "p_master")
Тусклый элемент как новый DataGridViewRow
DataGridView1.AllowUserToAddRows = True
пункт.CreateCells(DataGridView1)
Ящик для сообщений.Show ("запись успешно обновлена")
Конец Подводной Лодки
Конец Класса
Пожалуйста, дайте мне решение, это очень срочно.
Private Sub frmupdate_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load