2012-03-23 5 views
0

Я конвертировал текстовое поле для принятия целых чисел. Но когда я вводим числовое значение в текстовое поле и нажимаю кнопку «Найти», возникает ошибка (NullReferenceException), может ли я помочь решить эту проблему? Если возможно, скажите мне причину ошибки.Как обращаться с NullReferenceException?

private void Find_Click(object sender, EventArgs e) 
{ 
    int convertedBranchID; 
    convertedBranchID = Convert.ToInt32(branchID.Text); 
    convertedBranchID = int.Parse(branchID.Text); 

    string selectDayOfWeek = dayOfWeek.Items[dayOfWeek.SelectedIndex].ToString(); 
    //dayOfWeek is the name of a combobox 


    //'NullReferenceException was unhandled' occurs here.... 
    DataRow[] findBranchID = RetailCamDataSet1.Tables["smBranchWorkingDayInfo"].Select("BranchID='" + searchBranchID + "'"); 

    branchIDResult = findBranchID.Length; 

    if (dayOfWeek.SelectedItem.ToString() == "Sunday") 
    { 

    } 
} 
+0

Как вы заполняете RetailCamDataSet1? –

+0

'RetailCamDataSet1', вероятно, не содержит таблицу' smBranchWorkingDayInfo'. –

+0

Thx every1. Только сейчас я понял, что не заполнял RetailCamDataSet1, тогда я использую 2 разных DataAdapter для заполнения двух разных таблиц, тогда он работает, но мне нужно использовать 2 разных DataAdapters для заполнения? Или я могу просто использовать 1 DataAdapter? RetailCamDataAdapter.Fill (RetailCamDataSet1, "pcPeopleCountingValue"); RetailCamDataAdapter1.Fill (RetailCamDataSet1, "smBranchWorkingDayInfo"); – hakunabean

ответ

0

RetailCamDataSet1 или таблица, в которую вы индексируете, равна нулю. Если RetailCamDataSet1 имеет значение null, и вы вызываете свойство Tables, вы пытаетесь ссылаться на null.

То же самое с выбором. Например, если нет таблицы с именем smBranchWorkingDayInfo (typo? Not filled?), Тогда индексирование на это будет возвращать null, поэтому вызов Select в отношении нулевого объекта приведет к исключению нулевой ссылки.

Установите точку останова на линии перед и рассмотрите объект RetailCamDataSet1 (убедитесь, что он не является нулевым). Вы также можете попробовать добавить над ним некоторый отладочный код, который выполняет итерацию по таблицам и видит, присутствует ли эта таблица.

+0

thx для объяснения ur. – hakunabean

Смежные вопросы