在SP插入C#期间DDL SelectedValue Convert.ToDecimal被四舍五入 [英] DDL SelectedValue Convert.ToDecimal is getting rounded up during SP Insert C#

查看:72
本文介绍了在SP插入C#期间DDL SelectedValue Convert.ToDecimal被四舍五入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果SelectedValue = 3.5,则插入4.0?



我的SqlDateType是十进制(18,2)



这是我的DDL代码:

If the SelectedValue = 3.5, 4.0 gets inserted?

My SqlDateType is Decimal(18,2)

Here is my DDL code:

<asp:RadioButtonList ID="skillLevelCmbo" runat="server" RepeatLayout="Table" RepeatDirection="Horizontal" CssClass="skillLevel" BackColor="#00f3ff">
     <asp:ListItem Value="2.5">2.5</asp:ListItem>
     <asp:ListItem Value="3.0">3.0</asp:ListItem>
     <asp:ListItem Value="3.5">3.5</asp:ListItem>
     <asp:ListItem Value="4.0">4.0</asp:ListItem>
     <asp:ListItem Value="4.5">4.5</asp:ListItem>
     <asp:ListItem Value="5.0">5.0</asp:ListItem>
     <asp:ListItem Value="5.5">5.5</asp:ListItem>
     <asp:ListItem Value="6.0">6.0</asp:ListItem>
 </asp:RadioButtonList>





这是我的SP插入ADO.NET命令:< br $>




Here is my SP insert ADO.NET command:

protected void submitBtn_Click(object sender, EventArgs e)
        {
            //update UserConfirmation Table
            SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["FMLConnection"].ToString());
            SqlCommand cmd = new SqlCommand("dbo.spInsertUserProfileData", cn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@userName", HttpContext.Current.User.Identity.Name);
            cmd.Parameters.AddWithValue("@firstName", fnameTB.Text);
            cmd.Parameters.AddWithValue("@lastName", lnameTB.Text);
            cmd.Parameters.AddWithValue("@userPhoneNumber", phnTB.Text);
            cmd.Parameters.AddWithValue("@email", emailTB.Text);
            cmd.Parameters.AddWithValue("@userStreetAddress", addressTB.Text);
            cmd.Parameters.AddWithValue("@userCity", cityTB.Text);
            cmd.Parameters.AddWithValue("@userState", Convert.ToString(DropDownListState.SelectedValue));
            cmd.Parameters.AddWithValue("@userZipCode", zipCodeTB.Text);
            cmd.Parameters.AddWithValue("@userBirthDate", DateTime.Parse(birthDate.Text));
            cmd.Parameters.AddWithValue("@userYearsPlayed", Convert.ToInt32(noOfYearsTB.Text));

//This is the Paramater with the issues if the SelectedValue = 3.5, 4.0 gets inserted?
cmd.Parameters.AddWithValue("@userSkillLevel"(Convert.ToDecimal(skillLevelCmbo.SelectedValue)));

            cn.Open();
            IAsyncResult result = cmd.BeginExecuteNonQuery();
            try
            {
                Session.Add("RegistrationComplete", result.IsCompleted);
                cmd.EndExecuteNonQuery(result);
                Response.Redirect("~/MyAccount");
            }
            catch (Exception ex)
            {
                errorsOccured.Text = "An error occurred: " + ex.Message;
            }
            finally
            {
                cn.Close();
            }
        }





任何建议都将不胜感激。



Any suggestions would be greatly appreciated.

推荐答案

查看代码,它似乎在存储过程中进行四舍五入,或者为技能集定义的数据类型为int。检查表和SP
Looking at the code it seems rounding off taking place in the Stored Procedure or the data type you defined for skill set is int. Check the data type for Skilllevel column in both the table and the SP


这篇关于在SP插入C#期间DDL SelectedValue Convert.ToDecimal被四舍五入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆