В настоящее время я встретив такого рода ошибка«Ошибка преобразования» цифрового ввода для коррекции типа TSQL (возможная ошибка)
Ошибка преобразования типов данных с плавающей точкой в десятичной системе.
или
Ошибка преобразования типа данных Numeric в десятичную
Это мой код
using (SqlConnection reportsConn = new SqlConnection(sqlConnWriter))
{
reportsConn.Open();
SqlCommand AddReconItem = new SqlCommand();
AddReconItem.Connection = reportsConn;
AddReconItem.CommandType = CommandType.StoredProcedure;
AddReconItem.CommandText = "Updater.usp_AddReconcileItems";
// AddReconItem.Parameters.Add("@varible",SqlDbType.Decimal
AddReconItem.Parameters.AddWithValue("@ITEMWEIGHT", Math.Round(Convert.ToDouble(WeightTextBox.Text+".00"), 2));
AddReconItem.Parameters.AddWithValue("@ITEMPRINCIPALAMT", Math.Round(Convert.ToDouble(PrincipalTexAmTextBox.Text + ".00"), 2));
AddReconItem.Parameters.AddWithValue("@FORLOANMONTH", Convert.ToDateTime(YearDropDownList.SelectedValue + "/" + MonthDropDownList.SelectedValue));
AddReconItem.Parameters.AddWithValue("@STORAGEGROUPID", StorageNameDropDownList.SelectedValue);
AddReconItem.Parameters.AddWithValue("@BRANCHCODE",BranchCodeTextBox.Text);
AddReconItem.Parameters.AddWithValue("RECONID", ReconTypeDropDownList.SelectedValue);
AddReconItem.Parameters.AddWithValue("@PAWNTIX",PwnTicketTextBox.Text);
AddReconItem.Parameters.AddWithValue("@CREATEDBY", Session["UserID"].ToString());
AddReconItem.ExecuteNonQuery();
}
Когда вход, 123
для principalamt
и itemweight
она принимает ответ и рассматривает его как десятичную, но когда я в поставил 1234
для itemweight
и еще 123
для Principalamt
это показывает, что ошибка, если удалить преобразование и изменить его на Convert.ToDecimal
он показывает Error converting data type Numeric to decimal
, если я использую его в качестве текста он показывает Error converting data type varchar to decimal
Является ли это ошибка или что-то? Я не могу показаться, чтобы найти способ, которым я пытался много вариантов, но ни один из них работали
Мои столбцы базы данных ниже:
Я действительно надеюсь, что вы можете помочь мне понять это явление
EDIT
Это первый раз, когда программа принимала 123 в качестве действительного ввода, а 1234 - нет, моя база данных Decimal (38,6)
очень большая, чтобы разместить этот вход, поэтому я ищу ответ или известные ошибки, которые могут решить эту проблему проблема, спасибо.
Можете ли вы изолировать проблему от * just *, скажем, типа денег? (Будьте осторожны с термином «ошибка» или «ошибки» в заголовках или тегах - они должны быть зарезервированы для редких случаев утверждения проблемы с хорошо установленной программой/библиотекой :) – user2246674
@ user2246674 нет проблем с типом денег я подозреваю проблему в десятичном типе. – user2705620
@ user2246674 Это не редкий случай? я никогда не видел поток inoutting 123, поскольку он принимает его, в то время как 1234 не является принятым входом? – user2705620