转换并格式化Datarow

时间:2016-12-12 13:31:44

标签: c# asp.net asp.net-mvc formatting

我希望通过thousand separator来格式化模型的数据,这些数据在Datarow中,并且不能使用带有2个参数的toString()(如我的链接所示) )在一个物体上。

我认为我必须将Datarow解析为int然后将此int解析为字符串(使用toString(" n",nfi)),但我的代码不起作用。

  

类型' System.FormatException'的例外情况发生在mscorlib.dll中但未在用户代码中处理   附加信息:输入字符串的格式不正确。

示例:listRow.Add(Convert.ToInt64(row["ENTITE"]).ToString("n", nfi));

数据:

Example of datas

这是我模特的代码:

                dac = new SqlDataAdapter(sql, cn);
            dsc = new DataSet();
            dac.Fill(dsc, "histo");

            List<List<string>> listHisto = new List<List<string>>();
            StringBuilder output = new StringBuilder();

            foreach (DataRow row in dsc.Tables["histo"].Rows)
            {
                CultureInfo.GetCultureInfo("fr-fr");
                NumberFormatInfo nfi = (NumberFormatInfo)
                CultureInfo.InvariantCulture.NumberFormat.Clone();
                nfi.NumberGroupSeparator = " ";

                List<string> listRow = new List<string>();

                listRow.Add(Convert.ToInt64(row["ENTITE"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M01"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M02"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M03"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M04"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M05"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M06"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M07"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M08"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M09"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M10"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M11"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["M12"]).ToString("n", nfi));
                listRow.Add(Convert.ToInt64(row["TT"]).ToString("n", nfi));
                listHisto.Add(listRow);
            }

            list.Add("histo", listHisto);

            DataTable dtc = dsc.Tables["histo"];

我的观点代码:

            @{
            List<List<string>> listHisto = ViewBag.ListHisto;

            bool isClassSuccess = true;
            string classLigne;

            foreach (List<string> item in listHisto)
            {
                if (isClassSuccess)
                {
                    classLigne = "class=warning";//jaune clair
                    isClassSuccess = false;
                }
                else
                {
                    classLigne = "class=success";//vert clair
                    isClassSuccess = true;
                }
                @:<tr @classLigne>
                    foreach (string row in item)
                    {
                        <td>@row</td>
                    }
                @:</tr>
            }

提前感谢您的帮助

0 个答案:

没有答案