Ошибка при отсутствии данных из DDL

У меня было это сообщение

Строка ввода не была в правильном формате

при вставке значений в базу данных. Когда я проверил, у меня есть DDL, но я не выбрал значение из него, так что это сообщение появилось, хотя я делаю этот столбец в базе данных, чтобы разрешить значение NULL.

protected void BT_submit_Click(object sender, ImageClickEventArgs e)
{
    string File = "~/CvFiles/" + FU_CV.FileName;
    if (FU_CV.FileBytes.Length > 4194304)
    {
        modalpopup.Show();
    }
    else
    {
        app.AddApplicant(txt_Mname.Text, Convert.ToInt32(DDL_Dept.SelectedValue));
    }
}

private void loadDepts()
{
    DDL_Dept.DataSource = d.GetAll();
    DDL_Dept.Items.Clear();
    DDL_Dept.AppendDataBoundItems = true;
    DDL_Dept.Items.Insert(0, new ListItem("-All-", "NULL"));
    DDL_Dept.DataValueField = "id";
    DDL_Dept.DataTextField = "name";
    DDL_Dept.DataBind();
}
 public bool AddApplicant(string MiddleName, int Dept_ID)
{

    SqlCommand cmd = new SqlCommand("SP_Insert_IntoApplicantforuser");
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("@MiddleName", MiddleName);


    cmd.Parameters.AddWithValue("@Dept_ID", Dept_ID);


    System.Data.SqlClient.SqlParameter paramter1 = cmd.Parameters.Add("@AppID", SqlDbType.Int);
    paramter1.Direction = ParameterDirection.Output;

    bool rowaffected;
    rowaffected = DBHelper.Instance().Insert(cmd);
    if (rowaffected == false)
    {
        AppID = (int)paramter1.Value;

    }
    return rowaffected;


}
0
nl ja de

1 ответы

Вы должны проверить, если DDL_Dept.SelectedValue является строковым представлением int . Используйте int.TryParse метод:

if (FU_CV.FileBytes.Length > 4194304)
{
    modalpopup.Show();
}
else
{
    int dept;
    if  (int.TryParse(DDL_Dept.SelectedValue, out dept))
        app.AddApplicant(txt_Mname.Text, dept);
    else 
        app.AddApplicant(txt_Mname.Text, -1); //or whatever there should be for you
}
1
добавлено
@Egydeveloper, что вы подразумеваете под «convert int to NULL»? Можете ли вы показать свой метод AddApplicant?
добавлено автор JleruOHeP, источник
Как и в вашем последнем аргументе метода, вы должны заменить null на 0 (или -1 &) - это зависит от вас и вашей логики db (возможно, у вас есть триггеры?)
добавлено автор JleruOHeP, источник
AddApplicant имеет переменную int, которая имеет значение от DDl, поэтому, когда я использовал ошибку NULL
добавлено автор Egydeveloper, источник
которые не могут преобразовать int в NULL
добавлено автор Egydeveloper, источник
Я редактировал вопрос, который вы можете проверить методом AddApplicant
добавлено автор Egydeveloper, источник
эта ошибка появилась. Инструкция INSERT противоречила ограничению FOREIGN KEY «FK_Applicants_Departments». Конфликт произошел в базе данных «ElarabyHospital», таблице «dbo.Departments», в столбце «ID». Заявление было прекращено
добавлено автор Egydeveloper, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)