Кодирование в VB.Net
Привет, ребята, у меня есть проблема, когда я пытаюсь назначить некоторые параметры для хранимой процедуры с некоторыми значениями, которые хранятся в таблице данных. в коде я могу установить значения параметров для таблицы данных и дать заголовок столбца или индекс без проблем, но когда он пытается выполнить во время выполнения, он взрывается.
ошибка, которую я получаю, - это вариант «Не удалось преобразовать значение параметра из DataColumn в строку» в зависимости от того, как именно я пытаюсь присвоить значение.
все типы данных являются правильными в других местах кода, так что я уверен, что это не проблема, я думаю, что я просто поступаю об этом неправильно.
мой код для этого бита
Try
ConnectionAttempt.Open()
Try
With NewYearCommand_Dates
.CommandType = CommandType.StoredProcedure
.CommandText = "DatesINSERT"
.Parameters.Add(New SqlParameter("@AcademicYear", SqlDbType.VarChar))
.Parameters.Add(New SqlParameter("@YearStart", SqlDbType.Date))
.Parameters.Add(New SqlParameter("@YearEnd", SqlDbType.Date))
.Parameters.Add(New SqlParameter("@Term1Start", SqlDbType.Date))
.Parameters.Add(New SqlParameter("@Term1End", SqlDbType.Date))
.Parameters.Add(New SqlParameter("@Term2Start", SqlDbType.Date))
.Parameters.Add(New SqlParameter("@Term2End", SqlDbType.Date))
.Parameters.Add(New SqlParameter("@Term3Start", SqlDbType.Date))
.Parameters.Add(New SqlParameter("@Term3End", SqlDbType.Date))
.Parameters("@AcademicYear").Value = dates.Columns("AcademicYear")
.Parameters("@YearStart").Value = dates.Columns("YearStart")
.Parameters("@YearEnd").Value = dates.Columns("YearEnd")
.Parameters("@Term1Start").Value = dates.Columns("Term1Start")
.Parameters("@Term1End").Value = dates.Columns("Term1End")
.Parameters("@Term2Start").Value = dates.Columns("Term2Start")
.Parameters("@Term2End").Value = dates.Columns("Term2End")
.Parameters("@Term3Start").Value = dates.Columns("Term3Start")
.Parameters("@Term3End").Value = dates.Columns("Term3End")
.Connection = ConnectionAttempt
.ExecuteNonQuery()
.Dispose()
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
другие вещи, которые я пытался заставить это работать, - это все варианты бита .Value = даты, такие как
.Value = даты (0) (поэтому используется индекс столбца)
.Value = date.columns (0) (снова с использованием индекса столбца)
Я также пытался объявить переменные и установить их значения в значения в столбцах, но код возвращает ошибку, в которой говорится, что «значение типа 'System.Data.DataColumn' нельзя преобразовать в строку".
Я должен отметить, что я делаю это для 3 таблиц одновременно в этом подпункте, у 2 из них будет только одна строка данных, а у третьей - неопределенное количество строк.
Боюсь, я не знаю, что еще делать. Я уверен, что мой друг и лектор поверили, что это должно сработать, и, конечно, это сработает, но доказательства говорят об обратном.
если я пойду по этому поводу совершенно неправильно, может кто-нибудь просветить меня, что я ДОЛЖЕН делать?
ура