C#Decimal插入sql时的十进制舍入 [英] Decimal Rounding When C#Decimal Inserted into sql

查看:58
本文介绍了C#Decimal插入sql时的十进制舍入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我将其插入sql数据库时,有人可以解释为什么我的小数是四舍五入的。在插入之前它不是圆形的。我不希望它四舍五入,需要准确。



Can someone explain why my decimal is rounding when I insert it into sql database. Right before inserting it isn't rounded. I do not want it rounding, needs to be exact.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace StaffHours.cs
{
    public partial class James : Form
    {
        decimal james;
        public James()
        {
            InitializeComponent();
        }

        private void James_Load(object sender, EventArgs e)
        {
            string connectionstring;
            {
                if (Variables.SQLConnections.Default.LocalConnectionorInternetConnection == "Local")
                {

                    connectionstring = Variables.SQLConnections.Default.SQLConnectionRosterLocal;
                    SqlConnection sqlconnection = new SqlConnection(connectionstring);
                    
                    {
                        //monday
                        string select_monday = "select [Hours - Monday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where Monday = 'james'";
                        SqlCommand monday = new SqlCommand(select_monday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drmonday = monday.ExecuteReader();
                        while (drmonday.Read())
                        {
                            if (drmonday.HasRows == true)
                            {
                                james = (drmonday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //tuesday
                        string select_tuesday = "select [Hours - Tuesday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where Tuesday = 'james'";
                        SqlCommand tuesday = new SqlCommand(select_tuesday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drtuesday = tuesday.ExecuteReader();
                        while (drtuesday.Read())
                        {
                            if (drtuesday.HasRows == true)
                            {
                                james = james + (drtuesday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //wednesday
                        string select_wednesday = "select [Hours - wednesday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where wednesday = 'james'";
                        SqlCommand wednesday = new SqlCommand(select_wednesday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drwednesday = wednesday.ExecuteReader();
                        while (drwednesday.Read())
                        {
                            if (drwednesday.HasRows == true)
                            {
                                james = james + (drwednesday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //thursday
                        string select_thursday = "select [Hours - thursday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where thursay = 'james'";
                        SqlCommand thursday = new SqlCommand(select_thursday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drthursday = thursday.ExecuteReader();
                        while (drthursday.Read())
                        {
                            if (drthursday.HasRows == true)
                            {
                                james = james + (drthursday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //friday
                        string select_friday = "select [Hours - friday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where friday = 'james'";
                        SqlCommand friday = new SqlCommand(select_friday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drfriday = friday.ExecuteReader();
                        while (drfriday.Read())
                        {
                            if (drfriday.HasRows == true)
                            {
                                james = james + (drfriday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //saturday
                        string select_saturday = "select [Hours - saturday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where saturday = 'james'";
                        SqlCommand saturday = new SqlCommand(select_saturday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drsaturday = saturday.ExecuteReader();
                        while (drsaturday.Read())
                        {
                            if (drsaturday.HasRows == true)
                            {
                                james = james + (drsaturday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //sunday
                        string select_sunday = "select [Hours - sunday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where sunday = 'james'";
                        SqlCommand sunday = new SqlCommand(select_sunday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drsunday = sunday.ExecuteReader();
                        while (drsunday.Read())
                        {
                            if (drsunday.HasRows == true)
                            {
                                james = james + (drsunday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();

                        //updates users hours
                        MessageBox.Show(james.ToString());
                        SqlConnection con2 = new SqlConnection(connectionstring);
                        SqlCommand sqlcommand3 = con2.CreateCommand();
                        sqlcommand3.CommandText = "UPDATE [dbo].['" + "HoursTotalTable_" + Variables.HoursTableVariables.Default.hoursdate + Variables.SiteVariables.Default.sitename + "'] SET [HoursWorked] = @hoursworked WHERE StaffNumber = 52637";
                        sqlcommand3.Parameters.Add("@hoursworked", SqlDbType.Decimal).Value = james;
                        con2.Open();
                        sqlcommand3.ExecuteNonQuery();
                    }
                }
                else if (Variables.SQLConnections.Default.LocalConnectionorInternetConnection == "internet")
                {
                    connectionstring = Variables.SQLConnections.Default.SQLConnectionRosterInternet;
                    SqlConnection sqlconnection = new SqlConnection(connectionstring);

                    {
                        //monday
                        string select_monday = "select [Hours - Monday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where Monday = 'james'";
                        SqlCommand monday = new SqlCommand(select_monday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drmonday = monday.ExecuteReader();
                        while (drmonday.Read())
                        {
                            if (drmonday.HasRows == true)
                            {
                                james = (drmonday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //tuesday
                        string select_tuesday = "select [Hours - Tuesday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where Tuesday = 'james'";
                        SqlCommand tuesday = new SqlCommand(select_tuesday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drtuesday = tuesday.ExecuteReader();
                        while (drtuesday.Read())
                        {
                            if (drtuesday.HasRows == true)
                            {
                                james = james + (drtuesday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //wednesday
                        string select_wednesday = "select [Hours - wednesday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where wednesday = 'james'";
                        SqlCommand wednesday = new SqlCommand(select_wednesday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drwednesday = wednesday.ExecuteReader();
                        while (drwednesday.Read())
                        {
                            if (drwednesday.HasRows == true)
                            {
                                james = james + (drwednesday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //thursday
                        string select_thursday = "select [Hours - thursday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where thursay = 'james'";
                        SqlCommand thursday = new SqlCommand(select_thursday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drthursday = thursday.ExecuteReader();
                        while (drthursday.Read())
                        {
                            if (drthursday.HasRows == true)
                            {
                                james = james + (drthursday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //friday
                        string select_friday = "select [Hours - friday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where friday = 'james'";
                        SqlCommand friday = new SqlCommand(select_friday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drfriday = friday.ExecuteReader();
                        while (drfriday.Read())
                        {
                            if (drfriday.HasRows == true)
                            {
                                james = james + (drfriday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //saturday
                        string select_saturday = "select [Hours - saturday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where saturday = 'james'";
                        SqlCommand saturday = new SqlCommand(select_saturday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drsaturday = saturday.ExecuteReader();
                        while (drsaturday.Read())
                        {
                            if (drsaturday.HasRows == true)
                            {
                                james = james + (drsaturday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();
                        //sunday
                        string select_sunday = "select [Hours - sunday] from dbo.['" + "RosterTable_" + Variables.RosterVariables.Default.rosterdate + Variables.SiteVariables.Default.sitename + "'] where sunday = 'james'";
                        SqlCommand sunday = new SqlCommand(select_sunday, sqlconnection);
                        sqlconnection.Open();
                        SqlDataReader drsunday = sunday.ExecuteReader();
                        while (drsunday.Read())
                        {
                            if (drsunday.HasRows == true)
                            {
                                james = james + (drsunday.GetDecimal(0));
                            }
                        }
                        sqlconnection.Close();

                        //updates users hours

                        SqlConnection con2 = new SqlConnection(connectionstring);
                        SqlCommand sqlcommand3 = con2.CreateCommand();
                        sqlcommand3.CommandText = "UPDATE [dbo].['" + "HoursTotalTable_" + Variables.HoursTableVariables.Default.hoursdate + Variables.SiteVariables.Default.sitename + "'] SET [HoursWorked] = @hoursworked WHERE StaffNumber = 52637";
                        sqlcommand3.Parameters.Add("@hoursworked", SqlDbType.Decimal).Value = james;
                        con2.Open();
                        sqlcommand3.ExecuteNonQuery();
                    }
                }
                this.Close();
            }
        }
    }

推荐答案

访问这里..



http://social.msdn.microsoft.com/Forums/en-US/145d2b1c-793a-4d3e-8cbf-ac9bcc6dd273/rounding-c-decimal -values-to-sql-decimal-or-numeric-fields?forum = adodotnetentityframework [ ^ ]
visit here..

http://social.msdn.microsoft.com/Forums/en-US/145d2b1c-793a-4d3e-8cbf-ac9bcc6dd273/rounding-c-decimal-values-to-sql-decimal-or-numeric-fields?forum=adodotnetentityframework[^]


我看过那个网站。没有回答我的意思。
I have looked at that site. Didn't answer what I am after.


DECIMAL(18,0)将允许小数点后的0位数。

DECIMAL(18,0) will allow 0 digits after the decimal point.
You should use is as follows:

DECIMAL(m,a)
m is the number of total digits your decimal can have.

a is the max number of decimal points you can have.





有关详细信息,请参阅此链接

http://developer.mimer.com/documentation/Mimer_SQL_Reference_Manual/Syntax_Rules4.html [ ^ ]


这篇关于C#Decimal插入sql时的十进制舍入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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