Hej! Hur ser GetUser() ut? Gissar att problemet ligger där... public void GetUser() Testa att ta bort din felhantering så ser du var problemet dyker upp. Jag tror fortfarande att det är "lboxUsers.SelectedItem.Selected" som spökar till det, vad är det egentligen du vill göra? Min gissning är att det alltid kommer vara sant så fort något är markerat, är det inget som är markerat får du säkert det felet som du får... jag vill att om det dyker upp tex 10 namn i listboxen så ska jag kunna markera ett av dom för att få vidare information om den personen genom att klicka på en knapp. Försöker du kolla om någon är markerad med if-satsen? Testa i sådana fall "if (lstAvdelningar.SelectedItems.Count == 1)" Först i applikationen så skriver man in ett namn och klicka på sök. Mattias Jag hittade problemet.listbox och select problem
Jag plockar ut ifrån en databas massor av namn som jag listar upp i en listbox.
Sedan vill jag kunna välja ett namn för att visa vidare informationen från det namnet.
då använder jag:
private void btGet_Click(object sender, System.EventArgs e)
{
try
{
if(lboxUsers.SelectedItem.Selected)
{
GetUser();
}
else
{
lbError.Text ="You must select a user from the listbox";
}
}
catch(Exception c)
{
lbError.Text = c.Message;
}
}
får felmeddelandet meddelnadet:
"Object reference not set to an instance of an object"
har någon något förslag?
MVH
MattiasSv: listbox och select problem
Sedan undrar jag vad du menar med "lboxUsers.SelectedItem.Selected". Du kontrollerar alltså om den markerade raden är markerad?? Du kanske kan få det felet om det inte är något markerat...
/JohanSv:listbox och select problem
{
OleDbConnection myConnection = new OleDbConnection();
myConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= C:\dbUser.mdb";
string mySelectQuery = "SELECT * FROM [Users]";
OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection);
try
{
myConnection.Open();
OleDbDataReader myReader;
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
_first = myReader.GetString(2).ToLower().Trim();
_last= myReader.GetString(3).ToLower().Trim();
_mail= myReader.GetString(4).ToLower().Trim();
_quest=lboxUsers.SelectedItem.Selected.ToString().ToLower().Trim();
string _answer= _first+" "+_last+" "+_mail;
if(_quest == _answer)
{
tboxUser.Text = myReader.GetString(0).Trim();
tboxPass.Text = myReader.GetString(0).Trim();
tboxFirstname.Text = myReader.GetString(0).Trim();
tboxLastname.Text = myReader.GetString(0).Trim();
tboxEmail.Text = myReader.GetString(0).Trim();
tboxMsn.Text = myReader.GetString(0).Trim();
tboxIcq.Text = myReader.GetString(0).Trim();
tboxMirc.Text = myReader.GetString(0).Trim();
tboxHome.Text = myReader.GetString(0).Trim();
}
else
{
tboxUser.Text = "";
tboxPass.Text = "";
tboxFirstname.Text = "";
tboxLastname.Text = "";
tboxEmail.Text = "";
tboxMsn.Text = "";
tboxIcq.Text = "";
tboxMirc.Text = "";
tboxHome.Text = "";
}
}
myReader.Close();
myConnection.Close();
}
catch (Exception e)
{
lbError.Text = e.Message;
}
}
så här der den ut, men när jag debuggar så går den inte änns in i den satsen?Sv: listbox och select problem
/JohanSv:listbox och select problem
Sv: listbox och select problem
/JohanSv:listbox och select problem
Då listas alla namn som finns i databasen som är samma som det man skrivit in tidigare upp i listboxen.
Då om man vill ha mer information om någon av dom listade, så ska man markera den man vill se mera utav och klicka på en "Get user" knapp och informationen kommer upp i ett annat fönster.Sv: listbox och select problem
Om jag förstår dig rätt så vill du lista mer info om den användare du väljer ut i din listbox. Din kod anropar dock GetUser() som vill lista allt från alla användare. Om du vill hämta specifik info från vald användare måste du skicka med den användardata du väljer från listboxen till din SQLsats.
Hårdkoda in "- Choose user -" i listboxens första plats. Index 0.
Typ:
try
{
if(lboxUsers.SelectedIndex > 0)
{
GetUserInfo(lboxUsers.SelectedValue);
}
else
{
lbError.Text ="You must select a user from the listbox";
}
}
private string [] GetUserInfo(string sUsername)
{
string sSQL = "SELECT * FROM [Users] WHERE Username = " + sUsername;
// Din kod med try & catch och allt
.
.
.
return null;
}Sv:listbox och select problem
Det var så att jag av någon anledning hade lagt in i page loadern att den skulle tömma listboxen med: lboxUser.Items.Clear(); och då blec det så att den fylde först listboxen för att sedan när jag klickar på knappen tömma listboxen och den som jag hade markerat försvann innan jag han fånga den. Där för vart det att referencen till objektet finns inte.
Så nu fungerar det att man letar på användare tex alla "kalle", listar dom i listboxen och markerar den man vill se mer info om och klickar på knappen så fylls en massa textboxar med inlagd data om den "Kalle" man valt.
Tack för hjälpen!
MVH
Mattias Andersson