•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the ASP.NET section within the Web Development category of DaniWeb, a massive community of 392,068 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 4,282 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our ASP.NET advertiser: Lunarpages ASP Web Hosting
Views: 12835 | Replies: 11
![]() |
Hey there
i have been trying to bind a table from database to a listbox. I know this can be done quite easily but i keep having an error with i cannot figure out why.
Whenever i declare selectedMain as linklist.selectedItem.value, it will alsways tell me "Object reference not set to an instance of an object"
Please help me? thanks in advance
i have been trying to bind a table from database to a listbox. I know this can be done quite easily but i keep having an error with i cannot figure out why.
Whenever i declare selectedMain as linklist.selectedItem.value, it will alsways tell me "Object reference not set to an instance of an object"
Please help me? thanks in advance
<script language="VB" runat="Server">
'path where xml file will be created
Sub page_Load(Sender as Object, E as EventArgs)
Dim ConODBC As new OdbcConnection
Dim cmdSelect as new OdbcCommand
Dim dsSet as new DataSet()
Dim dbApt as new OdbcDataAdapter
Dim dtrworks As OdbcDataReader
Dim connStr as String
connStr =""
ConODBC = New OdbcConnection(ConnStr)
conODBC.Open()
cmdSelect.Connection = ConODBC
cmdSelect.commandText = "select f_title, f_content from features_list"
dbApt.selectCommand = cmdSelect
dbApt.Fill(dsSet, "features_list")
'listbox-------------------------------------------------
Dim dtr as IDataReader = cmdSelect.executeReader()
linklist.DataSource = dtr
linklist.DataTextField = "f_title"
linklist.DataValueField = "f_title"
linklist.DataBind()
conODBC.Close
End Sub
'the upon click on the first listbox method__________________________
Sub linklist_SelectedIndexChanged(S as Object, E as EventArgs)
Dim ConODBC As new OdbcConnection
Dim cmdSelect as new OdbcCommand
Dim dsSet as new DataSet()
Dim dbApt as new OdbcDataAdapter
Dim dtrworks As OdbcDataReader
Dim connStr as String
connStr =""
ConODBC = New OdbcConnection(ConnStr)
conODBC.Open()
Dim selectedMain
selectedMain=linklist.selectedItem
selectedMain = linklist.selectedItem.value
testing.text = string.format("the selected one in listbox is" & selectedMain)
conODBC.Close
end sub
</script>
<html>
<head>
</head>
<body>
<form id="form1" runat="server">
<asp:ListBox BackColor="#CCCCCC" ID="linklist" Rows="5" runat="server" SelectionMode="single" AutoPostBack="true" OnSelectedIndexChanged="linklist_SelectedIndexChanged" target="_blank"/>
<asp:label ID="testing" runat="server"></asp:label>
</form>
</body>
Umm yes. That error tells your exactly what you need to know!!
*sigh*:rolleyes::rolleyes:
You have not declared the selectedMain as anything. :cry: :cry:
It should be:
i.e. Example
See here for a detailed tutorial.
Hope this helps
*sigh*:rolleyes::rolleyes:
You have not declared the selectedMain as anything. :cry: :cry:
It should be:
i.e. Example
Dim selectedMain As String or Dim selectedMain As Integer
See here for a detailed tutorial.
Hope this helps
Assistant Manager, Regional Pharmacy Information Systems
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
See I find that strange, because this error you are getting : Object reference not set to an instance of an object" is telling you that you have not set a declared Object to an Object type.
When you type DIm you are declaring an object in memory. You then state the key word as to associate that object with an Object Type. Just Dim'ing a variable with no type associated with it means you have declared an object of no type.
Glad you got it solved, care to share how you did it? Others may be interested.
When you type DIm you are declaring an object in memory. You then state the key word as to associate that object with an Object Type. Just Dim'ing a variable with no type associated with it means you have declared an object of no type.
Glad you got it solved, care to share how you did it? Others may be interested.
Assistant Manager, Regional Pharmacy Information Systems
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
•
•
•
•
Originally Posted by Paladine
See I find that strange, because this error you are getting : Object reference not set to an instance of an object" is telling you that you have not set a declared Object to an Object type.
When you type DIm you are declaring an object in memory. You then state the key word as to associate that object with an Object Type. Just Dim'ing a variable with no type associated with it means you have declared an object of no type.
Glad you got it solved, care to share how you did it? Others may be interested.
Paladine,
If you declare something like
Dim var1
.NET declares it as of type object.
When you associate the Object with a value Like "Just hi" which is a string like
var1 = "Just hi"
Then the datatype of var1 will be a String.
Similarly if you associate an Integer with the object var1,something like
var1= 1
then the type for the object var1 will become an integer.
Save White Tiger
Yes I know that, but it is not proper coding practice to declare a variable and not define a data type. Implied datatypes are dangerous ways of coding.
Saying that, it appears that this is a known bug:
Object Reference.....
Saying that, it appears that this is a known bug:
Object Reference.....
Assistant Manager, Regional Pharmacy Information Systems
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
hm.. well, as Paladine has said, it may not be good coding practise to not indicate the type of the variable.
As i not too sure what it should be declared at, i leave it as it is.
this may tell selectedMain that it suppose to be a string (?)
As i not too sure what it should be declared at, i leave it as it is.
Dim selectedMain selectedMain = listbox.selectedValue.ToString
this may tell selectedMain that it suppose to be a string (?)
Ok, well I thought it was clear in the tutorial on listbox populating and retrieving data, but let me see if I can better explain it.
The DataValueField of the listbox control is the value/datatype of the field you assign as the primary key. Thus the SelectedItem.Value would be this primary key value, and datatype.
Now saying that, remember what the definition of a Primary Key is = a unqiue identifier. It is not good practice to have duplicate Primary Keys. So if your f_title field has duplicates think of the error potential when the user selects on of those duplicates from the listbox. The code will not know where item is being selected for certain.
so your code would be
But I am guessing at the datatype of the f_title field.
Hope this clears things up for the Declaration issue... but I am wondering if you have completed this or not?
The DataValueField of the listbox control is the value/datatype of the field you assign as the primary key. Thus the SelectedItem.Value would be this primary key value, and datatype.
Now saying that, remember what the definition of a Primary Key is = a unqiue identifier. It is not good practice to have duplicate Primary Keys. So if your f_title field has duplicates think of the error potential when the user selects on of those duplicates from the listbox. The code will not know where item is being selected for certain.
so your code would be
Dim selectedMain As String ' Assuming f_title is a string or varchar() datatype selectedMain = linklist.SelectedItem.Value
But I am guessing at the datatype of the f_title field.
Hope this clears things up for the Declaration issue... but I am wondering if you have completed this or not?
•
•
•
•
Originally Posted by ozeona
hm.. well, as Paladine has said, it may not be good coding practise to not indicate the type of the variable.
As i not too sure what it should be declared at, i leave it as it is.
Dim selectedMain selectedMain = listbox.selectedValue.ToString
this may tell selectedMain that it suppose to be a string (?)
Assistant Manager, Regional Pharmacy Information Systems
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
Just to give things a whirl, here is the code I have for a working example
Now I have used CodeBehind as opposed to script, and I have set the listbox to autopostback = true:
HTML Code:
VB.NET CodeBehind Code:
Imports:
Page_Load and SelectedIndex_Change:
I hope this helps you out, but I still think that bug is going to be your issue.
Happy Coding!
Now I have used CodeBehind as opposed to script, and I have set the listbox to autopostback = true:
HTML Code:
WebForm1 <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="ListboxTest.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:ListBox id="linklist" style="Z-INDEX: 101; LEFT: 224px; POSITION: absolute; TOP: 48px" runat="server" Width="424px" Height="216px" AutoPostBack="True"></asp:ListBox> <asp:Label id="lblSelection" style="Z-INDEX: 102; LEFT: 224px; POSITION: absolute; TOP: 328px" runat="server" Width="432px" Height="40px"></asp:Label> </form> </body> </HTML>
VB.NET CodeBehind Code:
Imports:
Imports System.Data Imports System.Data.SqlClient
Page_Load and SelectedIndex_Change:
Const SQLCONN As String = "Network Library=DBMSSOCN;Data Source=192.168.0.100,1433;database=Northwind;User id=;Password=;" Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not Page.IsPostBack Then LoadList() linklist.SelectedIndex = 0 End If End Sub Private Sub LoadList() Dim strSQL As String = "SELECT ProductID, ProductName FROM Products" Dim connStr As SqlConnection = New SqlConnection(SQLCONN) Dim objCmd As New SqlCommand(strSQL, connStr) Dim objReader As SqlDataReader connStr.Open() objReader = objCmd.ExecuteReader(CommandBehavior.CloseConnection) linklist.Items.Clear() ' SET Primary Key value for ListBox linklist.DataValueField = "ProductID" ' SET Display field for Listbox linklist.DataTextField = "ProductName" ' SET Datasource for Listbox linklist.DataSource = objReader linklist.DataBind() objReader.Close() End Sub Private Sub linklist_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles linklist.SelectedIndexChanged Dim MyConn As SqlConnection = New SqlConnection(SQLCONN) Dim myCmd As SqlCommand Dim objReader As SqlDataReader Dim strSQL As String = "SELECT ProductName FROM Products" strSQL &= " WHERE ProductID = " & linklist.SelectedValue Dim strItemSelected As String myCmd = New SqlCommand(strSQL, MyConn) MyConn.Open() objReader = myCmd.ExecuteReader(CommandBehavior.CloseConnection) Do While objReader.Read() strItemSelected = objReader.Item("ProductName") Loop lblSelection.Text = "The Item you have selected is : " & strItemSelected End Sub
I hope this helps you out, but I still think that bug is going to be your issue.
Happy Coding!
Assistant Manager, Regional Pharmacy Information Systems
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
TLC Services Website (Under Construction)
Updated : ASP.Net Login Code
![]() |
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
•
•
•
•
•
•
•
•
DaniWeb ASP.NET Marketplace
- Previous Thread: Installer Setup Trouble
- Next Thread: loading roles from DB to auth cookie


Linear Mode