OleDbDataReader crasher når datafelt er tomt
Har en metode der smider et felt (kolonne) fra en Access db til en listbox. Den crasher hvis der ingen data er i feltet (af typen text) i linien: aListbox.Items.Add(aReader.GetString(0));Med undtagelsen: 'Specified cast is not valid'
Hvis der er data i alle poster i pågældende felt, er der ikke noget problem. Hvad er den nemmeste workaround på det ?
/// <summary>
/// Put data from Access to a named listbox.
/// </summary>
private void AddSqlResult2ListBox(string dbspec, string sqlStr, ListBox aListbox)
{
aListbox.Items.Clear();
OleDbConnection aConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @dbspec);
OleDbCommand aCmd = new OleDbCommand(sqlStr, aConn); // Create command obj and place sql string in it
try {
//aCmd.Parameters.Add("kommunenavn",kommunenavn);
aConn.Open();
OleDbDataReader aReader = aCmd.ExecuteReader(); // Create data reader object to retrieve data from table
if (aReader.HasRows) {
while(aReader.Read()){
aListbox.Items.Add(aReader.GetString(0)); // First column is read
}
}
aReader.Close();
aConn.Close();
}
catch (OleDbException ex){
MessageBox.Show(ex.Errors[0].Message);
hasError = true;
}
//catch (InvalidCastException ex){
// MessageBox.Show(ex.Errors[0].Message);
// hasError = true;
//}
}