Member 11856456 Ответов: 1

Не могу понять, почему datagridview не обновляется новой информацией после SQL-оператора с помощью строкового конструктора


вот мой код:

Dim sqlconn As New SqlConnection("sqlconnectionstring")
            Dim da As New SqlDataAdapter(String.Empty, sqlconn)

            Dim sql As New StringBuilder("insert into [")
            sql.Append(Form1.TreeView1.SelectedNode.Text.Replace("]", "\]"))
            sql.Append("] ([Id], ")

            Dim sbOn As New StringBuilder(") values(@Id, ")
            Dim andRequired As Boolean = False

            If Not String.IsNullOrEmpty(IDTextBox.Text) Then
                da.SelectCommand.Parameters.AddWithValue("@Id", 
            Form1.DataGridView1.Rows.Count + 1)
            End If

            If Not String.IsNullOrEmpty(First_NameTextBox.Text) Then
                If andRequired Then
                    sql.Append(", ")
                    sbOn.Append(", ")
                End If

                sql.Append("[First_name]")
                sbOn.Append("@Firstname")

                da.SelectCommand.Parameters.AddWithValue("@Firstname", First_NameTextBox.Text)
                andRequired = True
            End If
sql.AppendFormat(sbOn.ToString + ")")
            da.SelectCommand.CommandText = sql.ToString()
            Dim dt As New DataTable
            da.Fill(dt)
            DataGridView1.DataSource = dt


когда это используется, строка sql выходит правильно, но datagridview, к которому она подключена, становится серым и не показывает никаких данных, но если я перезапущу программу, она покажет новые данные.

Что я уже пробовал:

попытался изменить команду da. selectcommand на команду da.insertcommand. Также попытался изменить ситуацию вокруг использования новой команды sql, чтобы соответствовать Dataadaptor, но это тоже не сработало.

1 Ответов

Рейтинг:
2

RickZeeland

Я тоже столкнулся с этой проблемой, вы можете решить ее, установив DataGridView1.DataSource к Nothing первый.
Если этого недостаточно, добавьте DataGridView.Rows.Clear()


Member 11856456

хорошо сработало для моего заявления об обновлении,но не для вставки. сначала он показывает, какие записи я когда-либо выбирал, и действует как оператор обновления. Когда я иду и перезапускаю программу она показывает новую информацию

Member 11856456

Это все еще не работало, поэтому я просто решил поместить дополнительный SQL-оператор в эту ссылку обратно в таблицу после Нового добавления.