Пустой ссылкой исключение
Привет, сэр, я получаю исключение нулевой ссылки. пожалуйста, помогите
Что я уже пробовал:
Protected Sub ddlstate_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlstate.SelectedIndexChanged If ddlfin_year.SelectedIndex = 0 Then ClientScript.RegisterStartupScript(Me.GetType, "msgg", "alert('Please select Financial Year');", True) ddlstate.SelectedIndex = 0 Return End If If ddlmnth.SelectedIndex = 0 Then ClientScript.RegisterStartupScript(Me.GetType, "msgg", "alert('Please select Month');", True) ddlstate.SelectedIndex = 0 Return End If con.Open() Dim da As New SqlDataAdapter Dim dt As New DataTable Dim cmd As New SqlCommand Dim read As SqlDataReader cmd = New SqlCommand("Select Fin_Year,state_code,allocation from StateBrief_NSAP where Fin_Year='" & ddlfin_year.SelectedItem.Text & "' And state_code='" & ddlstate.SelectedItem.Value & "'", con) da = New SqlDataAdapter(cmd) dt = New DataTable() da.Fill(dt) read = cmd.ExecuteReader() read.Read() If dt.Rows.Count > 0 Then While read.Read Dim allocation As String = CStr(read("allocation")) Session("alloc") = allocation End While txtAllocation.Text = Session("alloc").ToString() txtAllocation.Enabled = False Else txtAllocation.Enabled = True txtAllocation.Text = "" End If read.Close() End Sub
Member 7870345
Привет:
В какой строке происходит исключение?
Member 12988273
txtAlloc.Текст = сессия ("распределение").Метод toString()
Michael_Davies
Сначала используйте отладчик, когда возникает исключение, наведите курсор мыши на переменные в нарушающей строке, чтобы увидеть, какая из них является нулевой, а затем выясните, почему и разберитесь с условием.
Во-вторых, почему вы заполняете DataTable, а затем используете Reader?
В-третьих, в определяющем операторе ваших переменных da, dt и cmd вы создаете их с помощью New, а затем снова создаете их в коде, почему "Dim da As New SqlDataAdapter" создаст переменную и выделит новый экземпляр, никогда не использовав этот экземпляр, вы затем создадите новый, прежде чем использовать его на самом деле; "da = New SqlDataAdapter(cmd)". То же самое касается dt и cmd.
Member 12988273
я сделал все, как вы сказали, но все еще получаю ошибку txtAlloc.Текст = сессия ("распределение").Метод toString()
Michael_Davies
в вашем коде это "alloc", а не "allocation" при вызове Session (). Допустили ли вы орфографическую ошибку, которая затем вернет Null, так как alloc не может быть найден, но распределение может быть?