Member 12652110 Ответов: 3

Ошибка преобразования nvarchar в числовой


когда я пытаюсь вставить, это не работает

Что я уже пробовал:

try
        {
            string str = "insert into LoanMaster( custId, principal,LoanTerm,LoanInterest,LoanMaturedAmt,LoanRate, Loanloantype, Loanmonthlyp) ";
            str += " values (@custId, @principal,@LoanInterest,@LoanMaturedAmt,@LoanRate,@Loanloantype,@Loanmonthlyp,@LoanTerm)";

            SqlCommand insert = new SqlCommand(str, myConn);


            insert.Parameters.AddWithValue("@custId", LblCustId.Text);
            insert.Parameters.AddWithValue("@principal", double.Parse(TbPrincipal.Text));
            insert.Parameters.AddWithValue("@LoanTerm", int.Parse(DdlTerm.SelectedItem.Text));

            insert.Parameters.AddWithValue("@LoanMaturedAmt", double.Parse(LblMaturedAmt.Text));
            insert.Parameters.AddWithValue("@LoanRate", double.Parse(LblIntRte.Text));
            insert.Parameters.AddWithValue("@LoanInterest", double.Parse(LblInterest.Text));
            insert.Parameters.AddWithValue("@Loanloantype", DDlLoanType.SelectedItem.Text);
            insert.Parameters.AddWithValue("@Loanmonthlyp", double.Parse(LblMthlyP.Text));
            myConn.Open();
            int insertcount = insert.ExecuteNonQuery();
            Response.Write("<script>alert('Successfully applied');</script>"); 

Karthik_Mahalingam

каковы типы столбцов в таблице ?

имя столбца и значения не синхронизированы,
tring str = " вставить в LoanMaster( custId, principal,LoanTerm,LoanInterest,LoanMaturedAmt,LoanRate, Loanloantype, Loanmonthlyp) ";
str + = " значения (@custId, @principal,@LoanInterest,@LoanMaturedAmt,@LoanRate,@Loanloantype,@Loanmonthlyp,@LoanTerm)";

Kornfeld Eliyahu Peter

Не все, что может содержать NVARCHAR, может быть преобразовано в числовое! Используйте свой отладчик, чтобы увидеть, каково фактическое значение!!!

Member 12652110

спасибо

Member 12652110

он отлично работает

3 Ответов

Рейтинг:
2

ZurdoDev

Ошибка довольно проста. Он исходит из SQL, а не из C#. Это означает, что вы пытаетесь сохранить что-то, что не является числом, в числовое поле. Это очень, очень легко исправить самостоятельно, и мы не можем помочь вам полностью, потому что мы не можем видеть вашу базу данных и запускать ваш код.

Просто используйте отладчик и проверьте значения, которые вы отправляете в SQL. Затем вы также проверяете свой SQL, чтобы убедиться, что вы вводите правильные параметры в правильные поля.

Очень просто.


Рейтинг:
2

mauryasantosh

Hi Karthik

You can do one things,Try to put validation before insertion ...(SqlDbType.Decimal)

insert.Parameters.AddWithValue("@Loanloantype", Decimal.Parse(DDlLoanType.SelectedItem.Text));

Note : if it not work please share details with me .


Рейтинг:
13

Karthik_Mahalingam

Цитата:
string str = " вставить в LoanMaster( custId, principal,LoanTerm,LoanInterest,LoanMaturedAmt,LoanRate, Loanloantype, Loanmonthlyp) ";
str + = " значения (@custId, @principal,@LoanInterest,@LoanMaturedAmt,@LoanRate,@Loanloantype,@Loanmonthlyp,@LoanTerm)";



int оператор insert, вы проходите @Loadloantype ценность для LoanRate колонка
где @Loadloantype держит в руках string ценность и LoadRate иметь тип decimal

использовать это

string str = "insert into LoanMaster( custId, principal,LoanTerm,LoanInterest,LoanMaturedAmt,LoanRate, Loanloantype, Loanmonthlyp) ";
                             str += " values (@custId, @principal,@LoanTerm,@LoanInterest,@LoanMaturedAmt,@LoanRate,@Loanloantype,@Loanmonthlyp)";