sheida-peyravi
پنج شنبه 31 مرداد 1387, 22:31 عصر
سلام دوستان
فرمي در2003 Vb.net دارم كه پس از انتخاب گزينه هاي مورد نظر از Combobox هايي كه از ديتابيس پر مي شوند عمليات جستجو را انجام داده و نتيجه را در يك ليست باكسي به نام شماره دانشجويي، شماره دانشجويي هاي يافت شده را نمايش ميدهد. اما پس از فشردن دكمه جستجو اين پيغام خطا را نشان ميدهد.
Object reference not set to an instance
در كجاي اين كد خطا وجود دارد:
If ((cbterm.SelectedValue <> "") And (lbcourse.SelectedValue <> "")) Then
Dim daTest1 AsNew SqlDataAdapter
Dim cnTest1 AsNew System.Data.SqlClient.SqlConnection
Dim dsTest1 AsNew DataSet
dsTest1.Clear()
Dim strSql1 AsString
Dim strCn1 AsString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=""DB-university"";Data Source=""user-cf89685757"""
Dim sqlCmd1 AsNew SqlCommand
Dim myDT1 AsNew DataTable
cnTest1.ConnectionString = strCn1
' open the connection
Try
cnTest1.Open()
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(ex.Source)
EndTry
strSql1 = "SELECT u_stude.Id FROM u_stude,u_term,u_course,u_selectunit"
strSql1 = strSql1 + " WHERE u_term.term = u_selectunit.term "
strSql1 = strSql1 + " AND u_course.courseno = u_selectunit.courseno"
Dim strSlctTerm AsString
strSlctTerm = cbterm.SelectedValue
If strSlctTerm <> "" Then
strSql1 = strSql1 + " AND u_term.term = '" + strSlctTerm + "'"
EndIf
Dim strSlctcourse AsString
strSlctcourse = lbcourse.SelectedValue
If strSlctcourse <> "" Then
strSql1 = strSql1 + " AND u_course.courseno = '" + strSlctcourse + "'"
EndIf
sqlCmd1.CommandText = strSql1
sqlCmd1.Connection = cnTest1
daTest1.SelectCommand = sqlCmd1
Try
daTest1.Fill(dsTest1, "u_stude.Id")
Dim row AsString
ForEach row In dsTest1.Tables("myDT").Rows
lbId.Items.Add(dsTest1.Tables("myDT").Rows)
'lbId.DataSource = dsTest1.Tables("u_stude")
lbId.DisplayMember = "Id"
lbId.ValueMember = "Id"
Next
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(ex.Source)
EndTry
'lbId.Refresh()
'lbId.DataSource = dsTest1.Tables(0)
' close the connection
cnTest1.Close()
cnTest1 = Nothing
EndIf
EndIf
اين خطا را نيز هنگام حذف سطر از Datagrid در فرم ديگري نشان مي دهد.
فرمي در2003 Vb.net دارم كه پس از انتخاب گزينه هاي مورد نظر از Combobox هايي كه از ديتابيس پر مي شوند عمليات جستجو را انجام داده و نتيجه را در يك ليست باكسي به نام شماره دانشجويي، شماره دانشجويي هاي يافت شده را نمايش ميدهد. اما پس از فشردن دكمه جستجو اين پيغام خطا را نشان ميدهد.
Object reference not set to an instance
در كجاي اين كد خطا وجود دارد:
If ((cbterm.SelectedValue <> "") And (lbcourse.SelectedValue <> "")) Then
Dim daTest1 AsNew SqlDataAdapter
Dim cnTest1 AsNew System.Data.SqlClient.SqlConnection
Dim dsTest1 AsNew DataSet
dsTest1.Clear()
Dim strSql1 AsString
Dim strCn1 AsString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=""DB-university"";Data Source=""user-cf89685757"""
Dim sqlCmd1 AsNew SqlCommand
Dim myDT1 AsNew DataTable
cnTest1.ConnectionString = strCn1
' open the connection
Try
cnTest1.Open()
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(ex.Source)
EndTry
strSql1 = "SELECT u_stude.Id FROM u_stude,u_term,u_course,u_selectunit"
strSql1 = strSql1 + " WHERE u_term.term = u_selectunit.term "
strSql1 = strSql1 + " AND u_course.courseno = u_selectunit.courseno"
Dim strSlctTerm AsString
strSlctTerm = cbterm.SelectedValue
If strSlctTerm <> "" Then
strSql1 = strSql1 + " AND u_term.term = '" + strSlctTerm + "'"
EndIf
Dim strSlctcourse AsString
strSlctcourse = lbcourse.SelectedValue
If strSlctcourse <> "" Then
strSql1 = strSql1 + " AND u_course.courseno = '" + strSlctcourse + "'"
EndIf
sqlCmd1.CommandText = strSql1
sqlCmd1.Connection = cnTest1
daTest1.SelectCommand = sqlCmd1
Try
daTest1.Fill(dsTest1, "u_stude.Id")
Dim row AsString
ForEach row In dsTest1.Tables("myDT").Rows
lbId.Items.Add(dsTest1.Tables("myDT").Rows)
'lbId.DataSource = dsTest1.Tables("u_stude")
lbId.DisplayMember = "Id"
lbId.ValueMember = "Id"
Next
Catch ex As Exception
MsgBox(ex.Message)
MsgBox(ex.Source)
EndTry
'lbId.Refresh()
'lbId.DataSource = dsTest1.Tables(0)
' close the connection
cnTest1.Close()
cnTest1 = Nothing
EndIf
EndIf
اين خطا را نيز هنگام حذف سطر از Datagrid در فرم ديگري نشان مي دهد.