截至目前,我遇到了这种错误
将数据类型浮点数转换为十进制时出错。
或者
将数据类型数字转换为十进制时出错
这是我的代码
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
forprincipalamt
并且itemweight
它接受答案并将其视为小数,但是当我输入1234
foritemweight
并且仍然123
forPrincipalamt
时它显示该错误,如果我删除转换并将其更改为Convert.ToDecimal
它显示Error converting data type Numeric to decimal
如果我将其用作显示的文本Error converting data type varchar to decimal
这是一个错误还是什么?我似乎找不到一种方法,我尝试了很多选择,但没有一个有效
我的数据库列如下:
我真的希望你能帮助我理解这个现象
编辑
这是我第一次看到一个程序接受 123 作为有效输入而 1234 不是,我的数据库Decimal (38,6)
非常大,可以容纳这个输入,这就是为什么我正在寻找可以解决这个问题的答案或已知错误,谢谢你。