編碼問題參數值設置等於DataColumn的值在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 = dates(0)(so using column index)
.Value = dates.columns(0)(再次使用列索引)
我也試過聲明變量,並將它們的值設置爲列中的值,但代碼返回錯誤,指出「類型'System.Data.DataColumn'的值不能轉換爲字符串」。
我應該指出,我在這個子文件中一次爲3個表執行此操作,其中2個將只有一行數據,但第三個數據行具有不確定的數目。
恐怕我不知道該怎麼辦。我帶領我的隊友和我的講師相信這應該起作用,當然它會起作用,但證據不是這樣。
如果我完全用錯誤的方式去談論這個問題,有人能告訴我我應該做什麼嗎?
歡呼
實際上,我可以同時與3代表這樣做,但他們各自遭遇了同樣的問題,我想我應該提到的是,我的問題。 無論如何,其中2個只有一行,但第三個行中有不確定的行數,那麼我將如何處理這種情況? – Archaon6044 2011-04-23 18:52:58
@ Archaon6044 - 他們有沒有一行也沒關係。您仍然需要一次訪問一行(您可以訪問每個表中的一行)。 – Oded 2011-04-23 18:57:19
哦,這不是我的意思,實際上編號行已經解決了前兩個表的問題,但我不知道如何將它應用到第三個表,我不知道現在有多少行(這個表格從輸入獲取數據到數據網格視圖) 我想我可以使用For Each循環,但它返回了關於失敗類型轉換的相同錯誤 我用於我的循環的代碼是 '對於每個drPupilItem作爲DataRow在學生中使用。行 .Parameters(「@ Class」)。Value = pupils.Columns(「Class」)' – Archaon6044 2011-04-23 19:46:04