C#Decimal插入sql时的十进制舍入 [英] Decimal Rounding When C#Decimal Inserted into sql
本文介绍了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屋!
查看全文