Ошибка проверки C # - PullRequest
       1

Ошибка проверки C #

0 голосов
/ 10 октября 2011

Эй, я довольно новичок в c # и уверен, что это не так уж сложно, но я не могу разобраться с этим.

У меня есть метод, в котором я получаювсе переменные из формы Windows отправляют их в другой метод, который вставляет их в базу данных.Это работает хорошо, когда переменные объявлены, однако, когда я пытаюсь добавить немного проверки для проверки на нулевые значения, я получаю сообщение об ошибке «имя 'gridRef1V' не существует в текущем контексте".

Проверка, которую я имею в данный момент:

if (cbGridRef1.SelectedValue != null)
        {
            string gridRef1V = cbGridRef1.SelectedValue.ToString();
        }
        else
        {
            MessageBox.Show("The grid ref1 field must contain a value");
            cbGridRef1.Focus();
        }

Строка кода, получающая сообщение об ошибке:

SQLMethods.inspectionInsert(scrapTypeV, scrapShiftV, scrapDateV, prodAreaV, castDateV, dieNoV, dieCodeV, dieDescV, machineV, casterIDV, castShiftV, fettlerIDV, scrapCodeV, scrapTotalV, partIDV, gridRef1V, gridRef2V, qtyScrapV);

Спасибо за любую помощь заранее.

Ответы [ 2 ]

2 голосов
/ 10 октября 2011

У вас ошибка области видимости.Переместить

string gridRef1V;

Вне оператора if.

Если оно находится внутри оператора if, переменная недоступна за пределами этого блока кода.

    // gridRef1v doesn't exist
    if (cbGridRef1.SelectedValue != null)
    {
        string gridRef1V = cbGridRef1.SelectedValue.ToString();
    }  //gridRef1V no longer available after this } 
    else
    {
        // gridRef1v doesn't exist
        MessageBox.Show("The grid ref1 field must contain a value");
        cbGridRef1.Focus();
    }
    // gridRef1v doesn't exist

То, что вы хотите, это что-то вроде:

    string gridRef1v;
    if (cbGridRef1.SelectedValue != null)
    {
       gridRef1V = cbGridRef1.SelectedValue.ToString();
    }  //gridRef1V still available after this } 
    else
    {
        // gridRef1v exists
        MessageBox.Show("The grid ref1 field must contain a value");
        cbGridRef1.Focus();
    }
    // gridRef1v exists
0 голосов
/ 10 октября 2011

Попробуйте:

string gridRef1V;
if (cbGridRef1.SelectedValue != null)
        {
            gridRef1V = cbGridRef1.SelectedValue.ToString();
        }
        else
        {
            MessageBox.Show("The grid ref1 field must contain a value");
            cbGridRef1.Focus();
        }

Вы должны объявить gridRef1V вне области действия блока if, чтобы использовать его в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...