Мне нужно обновить все строки в нескольких столбцах одновременно.В основном полная таблица данных.Формат таблицы данных предварительно создан.Я новичок в ADO и только пару недель с ним.Вот проблема, я могу обновить каждую строку индивидуально, но не могу обновить все.Куда бы я ни посмотрел, от MS до форумов, они продолжают ссылаться на «ГДЕ».Как один основной столбец, ссылающийся на другие.Это НЕ то, что мне нужно.Все, что мне нужно, это обновить таблицу в базе данных, когда приложение закрыто или аварийно завершено, и загружено, когда приложение открыто.
Я пробовал почти все, начиная с реальных команд SQL и SQL.Но столбец продолжает обновляться как полный с одним значением, так как у меня нет ссылки WHERE, и при сохранении я ссылаюсь на индекс в строке ... Если я пытаюсь использовать для оператора, как я использую для нагрузки, он выдает ошибку, очевидно, потому что это простовыводит полные данные с помощью «ExecuteNonQuery».Я думаю, что мне нужно загрузить адаптер с данными, а затем загрузить его с базой данных, но я также получаю ошибки с ним ....
VB.net Load From Database
Dim connectionString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
Dim sql As String = "Select * FROM Table1"
Dim connection As New SqlConnection(connectionString)
Dim dataadapter As New SqlDataAdapter(sql, connection)
Dim ds As New DataSet()
connection.Open()
dataadapter.Fill(ds, "Data") ' Data tags data
'Count Rows In data Table
Dim commandRowCount As New SqlCommand("Select COUNT(*) FROM " + "dbo.Table1", connection)
Dim countStart As Long = System.Convert.ToInt32(commandRowCount.ExecuteScalar())
TextBox1.Text = countStart
For x = 0 To countStart - 1
If x = 0 Then
DataG.Rows.Add(1)
ElseIf x < countStart - 1 Then
DataG.Rows.Add(x)
End If
DataG.Rows(x).Cells("Column1").Value = ds.Tables("Data").Rows(x).Item("Column1")
DataG.Rows(x).Cells("Column2").Value = ds.Tables("Data").Rows(x).Item("Column2")
DataG.Rows(x).Cells("Column3").Value = ds.Tables("Data").Rows(x).Item("Column3")
Next
connection.Close()
End Sub
Сохранить данные - ВЫПУСК:
Dim connetionString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
Dim con As New SqlClient.SqlConnection(connetionString)
con.Open()
Dim cmd As New SqlClient.SqlCommand("Update Table1 SET Column1 = @Column1", con)
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
cmd.Parameters.Add(New SqlClient.SqlParameter("@Column1", DataG.Item("Column1", rowIndex:=0).Value))
cmd.ExecuteNonQuery()
con.Close()'''
Я бы предположил, что этот пример MS должен работать для того, что мне нужно, но он продолжает выдавать Error Column1, НЕ предоставленный по какой-либо причине.Однако значение в ячейке присутствует и пустых строк нет.Поэтому я очень запутался, почему он считает, что ценности не существует.Однако, если я ссылаюсь на первый столбец как «DataG.Rows (1) .Cells (« Column1 »). Значение», это работает .... это означает, что мне нужно где-то определить Table, но я понятия не имею, где
Dim connectionString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
Dim connection As New SqlConnection(connectionString)
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
connection.Open()
Dim command As SqlCommand = New SqlCommand("Select * FROM Table1 ", connection)
command.Parameters.Add("@Column1", SqlDbType.NVarChar, 50, "Column1")
adapter.SelectCommand = command
command.ExecuteNonQuery()
command = New SqlCommand("INSERT INTO Table1 (Column1) " & "VALUES (@Column1)", connection)
command.Parameters.Add("@Column1", SqlDbType.NChar, 50, "Column1")
command.ExecuteNonQuery()
adapter.InsertCommand = command
command = New SqlCommand("UPDATE Table1 Set Column1 = @Column1", connection)
command.Parameters.Add("@Column1", SqlDbType.NChar, 50, "Column1")
command.ExecuteNonQuery()
Dim parameter As SqlParameter = command.Parameters.Add("@Column1", SqlDbType.NChar, 50, "Column1")
parameter.SourceVersion = DataRowVersion.Original
adapter.UpdateCommand = command
command.ExecuteNonQuery()
command = New SqlCommand("DELETE FROM Table1 WHERE Column1 = @Column1", connection)
parameter = command.Parameters.Add("@Column1", SqlDbType.NChar, 50, "Column1")
parameter.SourceVersion = DataRowVersion.Original
adapter.DeleteCommand = command
command.ExecuteNonQuery()
Я считаю, что мне нужно либо загрузить адаптер данных с моей таблицей, либо применить оператор FOR.Или, возможно, оба заполняют адаптер данных всеми строками и отправляют его в базу данных для обновления.