2013-12-24 1 views
0

Я новичок в vb.VB 2008 - SQL Server 2005 - DataGridView - кнопка обновления - запись изменений в базу данных

В настоящее время я заполняю DataGridView1 данными из таблицы в базе данных SQL Server 2005. Мне нужно уметь записывать все изменения, сделанные простым щелчком btnupdate

Связанные темы на этом сайте обрабатывают определенные случаи, а не весь код принимается VS в моем случае, поэтому они не очень полезны.

Итак:

Private Sub btnupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnupdate.Click 
    'This needs to save the changes to the database' 
End Sub 

Есть простой кусок кода, который я могу вставить?

спасибо.

+1

Это ** слишком широкий * * вопрос .... как вы подключаетесь к SQL Server? Необработанный ADO.NET с специальными запросами? ADO.NET с хранимыми процедурами? Что-то вроде Entity Framework? Как выглядят ваши данные, которые вы показываете в «DataGridView», и как они хранятся в SQL Server 2005? Вам нужно будет предоставить ** более подробную информацию **, чтобы мы могли вам помочь! –

+0

Я подключаюсь к своему серверу по-прежнему только с vs2008, используя функции «подключение к данным» и «источник данных», а также имя пользователя/пароль sql. данные состоят из нескольких столбцов с именами и номерами, ничего, кроме nvchar (50) и int, он хранится в одной базе данных на сервере из двух этажей вниз. Я хочу, чтобы мое приложение регистрировалось на сервере при запуске, но я все еще пытаюсь заставить его работать. Я собирался спросить, что в другом потоке – user3132156

ответ

1

Тема широкая. Ниже приведен пример с использованием DataTable и DataAdapter. DataTable используется для хранения данных из базы данных и отслеживания изменений, сделанных пользователем для определенных строк при привязке к сетке. Адаптер генерирует sql, необходимый для выполнения команд обновления и удаления, при условии действительного SQL SELECT. Есть много разных способов выполнить то, что вы хотите, однако, это образец того, что вы можете сделать. После ознакомления с приведенным ниже кодом, вы можете захотеть углубиться в конкретные классы, чтобы узнать больше о них и адаптировать их к вашим потребностям.

Примечание: Ваша строка соединения и имена переменных в вашем случае может варьироваться в зависимости от того, что показано в этом перечислении:

Imports System.Data.SqlClient 
Public Class Form1 
    Dim connetionString As String 
    Dim connection As SqlConnection 
    Dim adapter As SqlDataAdapter 
    Dim cmdBuilder As SqlCommandBuilder 
    Dim ds As New DataSet 
    Dim changes As DataSet 
    Dim sql As String 
    Dim i As Int32 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password" 
     connection = New SqlConnection(connetionString) 
     sql = "select * from Product" 
     Try 
      connection.Open() 
      adapter = New SqlDataAdapter(sql, connection) 
      adapter.Fill(ds) 
      connection.Close() 
      DataGridView1.DataSource = ds.Tables(0) 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 
    End Sub 

    Private Sub btnupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
     '*** Process updates as made by the user in the datagridview control. 
     Try 
      cmdBuilder = New SqlCommandBuilder(adapter) 
      changes = ds.GetChanges() 
      If changes IsNot Nothing Then 
       adapter.Update(changes) 
      End If 
      MsgBox("Changes Done") 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 
    End Sub 
End Class 

Адаптировано из источника: http://vb.net-informations.com/dataadapter/dataadapter-datagridview-sqlserver.htm

+0

типа «SqlConnection» не определен, типа «SqlDataAdapter» не определен, типа «SqlCommandBuilder» не определен, Это был проблемой с куском кода, который я нашел раньше. Как я уже сказал: я все еще новичок в vb – user3132156

+0

.NET требует, чтобы вы использовали правильное пространство имен для классов. Я изменил код, чтобы отразить это, поскольку вам нужна строка: Imports System.Data.SqlClient в верхней части вашего кода. Если вы новичок в .NET, я бы предложил вам не начинать с доступа к базе данных, поскольку это не тривиальный вопрос. Кроме того, я настоятельно рекомендую книгу по ADO.NET. – NoChance

Смежные вопросы