Приложение MVC 4.0 .NET и значения, возвращаемые из базы данных после развертывания в IIS

1

это мой первый пост, поэтому я сожалею, если я что-то делаю неправильно. Мое приложение отлично работает, когда я запускаю это приложение из Visual Studio 2012, но после развертывания в IIS возникает проблема с двойными значениями, возвращаемыми из базы данных. Все двойные значения равны 0. Я понятия не имею, что я делаю неправильно. Я использую строго типизированные представления и хранимые процедуры для возврата значений из базы данных в приложение. Есть ли у вас какие-либо идеи?

С наилучшими пожеланиями!

--Редактировать--

ПОСМОТРЕТЬ

@foreach (var obj in Model.c2List)
            {
                <tr>
                    <td class="first-column">@obj.entityName</td>
                    <td>@obj.cet1CapitalRatio</td>
                    <td>@obj.surplusDeficitOfCet1Capital</td>
                    <td>@obj.t1CapitalRatio</td>
                    <td>@obj.surplusDeficitOfT1Capital</td>
                    <td>@obj.TotalCapitalRatio</td>
                    <td>@obj.SurplusDeficitOfTotalCapital</td>
                </tr>
            }      

КОНТРОЛЛЕР

public ActionResult TableViewParam()
        {
            PostedEntities postedEntities = Session["PostedEntities"] as PostedEntities;
            TableC3Model obj = new TableC3Model();
            return View("TableView", obj.getTableToView(postedEntities));
        }

МОДЕЛЬ

public List<TableC3Entity> c2List {get;set;}

public TableC3Model getTableToView(PostedEntities postedEntities)
        {
            TableC3Model objModel = new TableC3Model();
            List<TableC3Entity> list = new List<TableC3Entity>();
            DataTable dt = new DataTable();
            dt = assignToDataTable(postedEntities);
            using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["DWH"].ToString()))
            {
                try
                {
                    conn.Open();
                }
                catch
                {
                    throw new Exception("Blad rozpoczecia polaczenia z baza danych");
                }

                using (SqlCommand cmd = new SqlCommand("dbo.sp_select_from_v_c3_param", conn))
                {
                    using (TransactionScope ts = new TransactionScope())
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Connection = conn;

                        SqlParameter param = cmd.Parameters.AddWithValue("IDs", dt);
                        param.SqlDbType = SqlDbType.Structured;
                        param.TypeName = "dbo.ids";

                        using (SqlDataReader rdr = cmd.ExecuteReader())
                        {
                            while (rdr.Read())
                            {
                                TableC3Entity objEntity = new TableC3Entity();
                                objEntity.entityName = rdr["ENTITY"].ToString();
                                Double temp;
                                Double.TryParse(rdr["CET1_Capital_ratio"].ToString(), out temp);
                                objEntity.cet1CapitalRatio = temp;
                                Double.TryParse(rdr["Surplus(+)/Deficit(-) of CET1 capital"].ToString(), out temp);
                                objEntity.surplusDeficitOfCet1Capital = temp;
                                Double.TryParse(rdr["T1 Capital ratio"].ToString(), out temp);
                                objEntity.t1CapitalRatio = temp;
                                Double.TryParse(rdr["Surplus(+)/Deficit(-) of T1 capital"].ToString(), out temp);
                                objEntity.surplusDeficitOfT1Capital = temp;
                                Double.TryParse(rdr["Total capital ratio"].ToString(), out temp);
                                objEntity.TotalCapitalRatio = temp;
                                Double.TryParse(rdr["Surplus(+)/Deficit(-) of total capital"].ToString(), out temp);
                                objEntity.SurplusDeficitOfTotalCapital = temp;
                                Double.TryParse(rdr["CET1 capital ratio including Pillar II adjustments"].ToString(), out temp);
                                objEntity.cet1CapitalRatioIncludingPillarIIAdjustments = temp;
                                Double.TryParse(rdr["Target CET1 capital ratio due to Pillar II adjustments"].ToString(), out temp);
                                objEntity.TargetCet1CapitalRatioDueToPillarIIAdjustments = temp;
                                Double.TryParse(rdr["T1 capital ratio including Pillar II adjustments"].ToString(), out temp);
                                objEntity.T1CapitalRatioIncludingPillarIIAdjustments = temp;
                                Double.TryParse(rdr["Target T1 capital ratio due to Pillar II adjustments"].ToString(), out temp);
                                objEntity.TargetT1CapitalRatioDueToPillarIIAdjustments = temp;
                                Double.TryParse(rdr["Total capital ratio including Pillar II adjustments"].ToString(), out temp);
                                objEntity.TotalCapitalRatioIncludingPillarIIAdjustments = temp;
                                Double.TryParse(rdr["Target Total capital ratio due to Pillar II adjustments"].ToString(), out temp);
                                objEntity.TargetTotalCapitalRatioDueToPillarIIAdjustments = temp;

                                list.Add(objEntity);
                            }
                        }
                        ts.Complete();
                    }
                }
            }
            objModel.c2List = list;
            return objModel;
        }

ОРГАНИЗАЦИЯ

public String entityName { get; set; }
        public double cet1CapitalRatio { get; set; }
        public double surplusDeficitOfCet1Capital { get; set; }
        public double t1CapitalRatio { get; set; }
        public double surplusDeficitOfT1Capital { get; set; }
        public double TotalCapitalRatio { get; set; }
        public double SurplusDeficitOfTotalCapital { get; set; }
        public double cet1CapitalRatioIncludingPillarIIAdjustments { get; set; }
        public double TargetCet1CapitalRatioDueToPillarIIAdjustments { get; set; }
        public double T1CapitalRatioIncludingPillarIIAdjustments { get; set; }
        public double TargetT1CapitalRatioDueToPillarIIAdjustments { get; set; }
        public double TotalCapitalRatioIncludingPillarIIAdjustments { get; set; }
        public double TargetTotalCapitalRatioDueToPillarIIAdjustments { get; set; }

На SQL Server есть простой выбор из View, который отлично работает.

Теги:
sql-server
iis
culture

1 ответ

1
Лучший ответ

Я предполагаю, что у вас есть несоответствие с культурой на SQLServer и IIS.

SQLServer (возможно) возвращает двойки, которые используют американскую культуру (1.23), но ваш IIS работает под другой культурой, вместо этого вместо этого используется запятая (1,23). Это приведет к сбою TryParse и возврату 0.

  • 0
    Да, это не соответствовало культуре SQLServer и IIS. Большое спасибо за помощь :) Берегите себя!
  • 0
    Добро пожаловать :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню