У меня есть вопрос, похожий на этот , но чтение (принятого) ответа не дало мне большого понимания, поэтому я надеюсь изложить его более четко и получить более четкий ответ.
Я пытаюсь вставить строку данных в таблицу. Я использую TableAdapter
пользовательский «insert nonQuery», который я написал (он работает, я тестировал), чтобы принять некоторые параметры. Я довольно новичок в этом деле общения с базой данных через .NET, и то, что я делаю, вероятно, ошибочно по своему замыслу. Мои вопросы почему это неправильно и как правильно это сделать ? И то и другое одинаково важно, ИМО.
Вот пример кода VB, который я написал:
Dim arraysTableAdapter As New UnitTestsDataSetTableAdapters.ArraysTableAdapter
Try
arraysTableAdapter.InsertArray("Test Array", 2, 1, 2, "Test user")
Catch ex As SqlException
MsgBox("Error occured when trying to add new array." _
& vbNewLine & vbNewLine _
& ex.Message)
End Try
... и это почти всё. Возникла исключительная ситуация, в мою таблицу не вставлена новая строка. Все так, как было до того, как я вызвал метод InsertArray
. Когда я проверяю свой запрос в QueryBuilder с теми же параметрами, в базу данных добавляется новая строка.
Теперь я понимаю некоторые причины, по которым это не будет работать. Я понимаю, что мне нужно создать и выбрать строку в моем DataSet
(не знаю, как это сделать), чтобы сообщить TableAdapter
, к чему он добавляет данные. Или, по крайней мере, у меня сложилось такое впечатление от чтения огромной пропасти форумов.
Я бы действительно хотел использовать TableAdapter
в какой-то момент, потому что он знает, что существует .InsertArray
, и знает, какие параметры ему нравятся. Я мог бы попытаться сделать это, используя
Dim con As New SqlConnection
Dim cmd As New SqlCommand
con.ConnectionString = connString
con.Open()
cmd.CommandText = "INSERT ...... all that jazz"
но он недостаточно чист, чтобы мне нравился мой код. Итак, есть ли способ сделать то, что я пытаюсь сделать так, как я это делаю? Другими словами, как мне использовать аккуратную структуру TableAdapter
для связи с моим DataSet
и поставить в него новую строку?
Заранее спасибо!