繁体   English   中英

在服务器解析十进制中给出错误的数字

[英]In Server Parsing Decimal gives wrong number

在我的申请中。 我正在解析excel并且在excel中我正在使用十进制数字。 我使用OleDbConnection进行解析excell。 当我运行localhost解析并转换为十进制是正确的但在服务器中它给出错误的数字。 它不接受<,>分隔符,因此数字更大。

using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
process = "Bağlantı açıldı";
var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
using (var cmd = conn.CreateCommand())
{
    cmd.CommandText = "SELECT * FROM [" + sheets.Rows[0]["TABLE_NAME"].ToString() + "] ";
    var adapter = new OleDbDataAdapter(cmd);
    var ds = new DataSet();
    adapter.Fill(ds);
    conn.Close();

    #region scope parse
    using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
    new TransactionOptions()
    {
        IsolationLevel = System.Transactions.IsolationLevel.Serializable,
        Timeout = TimeSpan.FromSeconds(24000)
    }))
    {
        var context = new Entities2();
        // düzenle

        FNC_INVESTMENT_PERIOD_ACTUAL actual = new FNC_INVESTMENT_PERIOD_ACTUAL();
        decimal id = 0;
        List<FNC_INVESTMENT_PERIOD_ACTUAL> ActualDatas = new List<FNC_INVESTMENT_PERIOD_ACTUAL>();
        foreach (DataRow element in ds.Tables[0].Rows)
        {
            FNC_INVESTMENT_ACTUAL_DETAIL detail = new FNC_INVESTMENT_ACTUAL_DETAIL();
            string query = "select FNC_SEQ_ACTUAL_DETAIL.NEXTVAL from DUAL";
            var query_result = context.Database.SqlQuery<decimal>(query);
            decimal newId = query_result.First();
            detail.ID = newId;
            detail.REFACTUALCODE = id;
            detail.DOCNO = element[1].ToString();
            detail.DOCDATE = Convert.ToDateTime(element[2]);
            detail.AMOUNT = Convert.ToDecimal(element[4]);
            context.FNC_INVESTMENT_ACTUAL_DETAIL.Add(detail);
            context.SaveChanges();

        }
        scope.Complete();
    }
    #endregion
}

1.547,07此数字返回154707所以在服务器中给出大数字

我怎么解决这个问题。

提前致谢

你必须指定文化:

Convert.ToDecimal(element [4] .Replace('。',''),new CultureInfo(“fr-FR”));

有关详细信息,请阅读此Microsoft文档。

https://docs.microsoft.com/en-us/dotnet/api/system.convert.todecimal?view=netframework-4.8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM