1

今のところ、この種のバグに遭遇しています

データ型 float から decimal への変換中にエラーが発生しました。

また

数値から 10 進数へのデータ型変換エラー

これは私のコードです

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();
}

入力する123principalamtitemweight回答を受け入れて小数として扱いますが、入力1234するitemweightと、それでも123forPrincipalamtはそのエラーを示します。変換を削除して変更すると、それをテキストとして使用するかどうかが示されますConvert.ToDecimalError converting data type Numeric to decimalError converting data type varchar to decimal

これはバグか何かですか?多くのオプションを試した方法が見つからないようですが、どれも機能していません

私のデータベースの列は以下のとおりです。

この現象を理解するのを手伝ってくれることを本当に願っています

編集
これは、1234がそうではないのに123を有効な入力として受け入れるプログラムを見たのは初めてです。私のデータベースDecimal (38,6)はこの入力に対応するのに十分な大きさであるため、この問題を解決できる答えまたは既知のバグを探しています。ありがとうあなた。

4

1 に答える 1