Objektverweis nicht auf eine Instanz eines Objekts für Kombinationsfeld
Ich habe gesehen, viele der Objektverweis wurde nicht auf eine Instanz eines Objekts Fragen, aber ich konnte nicht finden, dass mein Szenario in jedem.
Habe ich ein Kombinationsfeld namens comboBox1
. Während die form lädt, ich habe code zum füllen der combobox:
private void Form1_Load(object sender, EventArgs e)
{
//TODO: This line of code loads data into the
//'tenderDBDataSet.tbl_Tender_To_Details' table.
//You can move, or remove it, as needed.
OleDbCommand cmd = new OleDbCommand("SELECT DISTINCT
tbl_Tender_To_Details.To_Name, tbl_Tender_To_Details.To_Address1,
tbl_Tender_To_Details.To_Address2,
tbl_Tender_To_Details.To_City, tbl_Tender_To_Details.To_PinCode "+
"FROM tbl_Tender_To_Details "+
"WHERE to_Name IS NOT NULL ", conn);
try
{
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
comboBox1.Items.Add(reader["To_Name"]);
//listBox1.Items.Add(reader[0].ToString());
//MessageBox.Show(reader[0].ToString());
}
reader.Close();
comboBox1.SelectedIndex = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(comboBox1.SelectedValue.ToString());
}
Den MessageBox.Show(comboBox1.SelectedValue.ToString());
Zeile zeigt:
"Der Objektverweis wurde nicht auf eine Instanz eines Objekts für die combo-box".
Aber meine überraschung ist der Wert am index 0 festgelegt ist, um combo-box, während die form lädt, nachdem dieses Objekt Referenz msg-box.
Holen Sie sich die combobox-Element zählen, nachdem die while-Schleife, es wird Ihnen sagen, viele der Informationen
InformationsquelleAutor shanmugamgsn | 2011-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie versuchen, setzen Sie diese Anweisung in die Seite laden, und stellen Sie sicher, dass die combobox geladen hat, die mit Artikel oder nicht??
wenn Sie mit winforms dann versuchen Sie, setzen Sie diese Aussage in der initializecomponent () - Funktion
u markiert haben asp.net auch , so denke ich, dass Sie mit asp.net aber in code, den Sie erwähnt haben combobox ....
wenn Sie mit winforms dann die Markierung entfernen Asp.net....
sorry werde ich entfernen asp.net tag. ich bin mit visual studio 2005 C#. Windows-Anwendung nur keine web-Anwendung
legen Sie einen Haltepunkt in dieser Zeile "comboBox1".Elemente.Add(reader["To_Name"]); und Versuch in den debug-Modus und prüfen Sie, ob Elemente Hinzugefügt combobox oder nicht...
InformationsquelleAutor Enigma State
Zunächst alles, was Sie tun, nicht, um den ausgewählten index zu 0 explizit. Es ist standardmäßig 0 (null). Es gibt Chancen, dass nichts aus der Datenbank geladen, nach dem ausführen der Leser und damit die DataSource der combobox-Komponente null ist. In diesem Szenario wenn Sie versuchen, um den gewählten index zu 0, null-Verweis-Ausnahme geworfen werden, die als framework versucht, um das erste Element in der Datenquelle, die null ist. In diesem Szenario Ihre gewählte index sollte -1 sein.
Also, wenn Sie wollen, dass der ausgewählte index für das erste Element in der Liste ist, würde ich nicht legen Sie die ausgewählten Artikel ausdrücklich. Das ist das Standardverhalten für die combobox.
wenn Sie selectindex = -1 die combobox füllen mit Gegenständen und zeigt keine Artikel in dieser Eigenschaft bei der formload (ich.e) combobox.Text =0
sorry Fehler wurde in der MessageBox.Show ("comboBox1".SelectedValue.ToString());
Du meinst der ursprüngliche Fehler lag?
ja suhas... Fehler ist int das messagebox-Zeile...
InformationsquelleAutor Suhas
Erstens haben Sie versucht, einen debugger verwenden, um zu überprüfen, ob der Leser tatsächlich setzen alles?
Bemerkte ich, dass Sie kapitalisiert "To_Name" in den reader, aber nicht in der where-Klausel - sind Sie sicher, dass Ihr nicht case-sensitive?
Zweitens, da Sie das arbeiten mit Datenbanken, eine einfachere Methode wäre die Rückkehr der db-Ergebnisse der Funktion in eine DataTable und dann Datenbindung.
Wenn Ihr ein Objekt-Verweis-Ausnahme, bedeutet es, dass die SelectedValue-in comboBox1 den Wert null. Dies bedeutet, dass wahrscheinlich die box leer ist. Lernen Sie den debugger verwenden. Trace-Programm und sehen, was genau in der comboBox.Bevor die Objekte, die Trigger auslösen.
Was ich meine, ist dieses: Fügen Sie einen Haltepunkt in der Zeile genau nach dem add-in. Uhr "combobox1".Elemente. Bei jeder loop-iteration, zu sehen, ob die Werte sich ändern. Ich persönlich denke, die die die groß-und Kleinschreibung Sache, aber auf diese Weise finden wir heraus. Oder der Leser ist wieder 0 Datensätze ein.
ok haedrian ich ll versuchen und erhalten Sie zurück
InformationsquelleAutor Haedrian
InformationsquelleAutor MethodMan