EdjeCageman
Gebruiker
- Lid geworden
- 24 okt 2011
- Berichten
- 273
Beste mensen,
Ik heb een DatagridView, deze wordt aangemaakt, geïnitialiseerd en gevuld, maar daarna crasht mijn code.
De constructor waar de datagridview is:
De selectionChanged event:
En de code waar hij daadwerkelijk op crasht:
Als ik de code debug wordt het laatste stuk code 3x aangeroepen.
1ste keer helemaal
2de keer stopt hij bij SqlDataReader reader = database.cmd.ExecuteReader(); en gaat hij door met andere code.
3de keer crasht hij helemaal bij: database.con.Open(); met de exceptoin: InvalidOperationException (logisch, de verbinding is bij de vorige niet gesloten)
Het lijkt dus alsof hij parallel wordt aangeroepen.
Overal online staat er dat ik de .Clearselection(); moet gebruiken, maar dit heeft ook geen enkele nut, hij blijft de selectie behouden.
Ik heb een DatagridView, deze wordt aangemaakt, geïnitialiseerd en gevuld, maar daarna crasht mijn code.
De constructor waar de datagridview is:
Code:
{
InitializeComponent();
deleteUnusedTabs();
detail = new AdministrationControlDetail();
//Initialize Datagridview
DataTable table = detail.getAllUsers();
GridFoundUsers.DataSource = table;
GridFoundUsers.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
GridFoundUsers.MultiSelect = false;
GridFoundUsers.RowHeadersVisible = false;
GridFoundUsers.SelectionChanged += FoundUsers_SelectionChanged;
SplitContainer.Panel2Collapsed = true;
SplitContainer.Panel2.Hide();
}
De selectionChanged event:
Code:
void FoundUsers_SelectionChanged(object sender, System.EventArgs e)
{
String selectedusername = GridFoundUsers[0, GridFoundUsers.CurrentRow.Index].Value as String;
SplitContainer.Panel2Collapsed = false;
SplitContainer.Panel2.Show();
System.Diagnostics.Debug.WriteLine(selectedusername);
UserDetail detail = new UserDetail(selectedusername);
GridApplications.DataSource = detail.getApplications();
GridApplications.ClearSelection();
}
En de code waar hij daadwerkelijk op crasht:
Code:
public DataTable getTable(String query, Dictionary<String, Object> para)
{
database.con.Open();
DataTable table = new DataTable();
using(database.cmd = new SqlCommand(query, database.con))
{
database.cmd.CommandType = CommandType.Text;
foreach(var value in para)
{
database.cmd.Parameters.AddWithValue(value.Key, value.Value);
}
SqlDataReader reader = database.cmd.ExecuteReader();
table.Load(reader);
}
database.con.Close();
return table;
}
Als ik de code debug wordt het laatste stuk code 3x aangeroepen.
1ste keer helemaal
2de keer stopt hij bij SqlDataReader reader = database.cmd.ExecuteReader(); en gaat hij door met andere code.
3de keer crasht hij helemaal bij: database.con.Open(); met de exceptoin: InvalidOperationException (logisch, de verbinding is bij de vorige niet gesloten)
Het lijkt dus alsof hij parallel wordt aangeroepen.
Overal online staat er dat ik de .Clearselection(); moet gebruiken, maar dit heeft ook geen enkele nut, hij blijft de selectie behouden.
Laatst bewerkt: