protected string FILENAME = System.Configuration.ConfigurationManager.AppSettings["apptext"].ToString();//获取web.config中的文件
        
        
        string[] arry = new string[20000000];        protected void Page_Load(object sender, EventArgs e)
        {
            EditCharsBound();   //构建表格
        }        #region     读取txt文件并分割成数组        /// <summary>
        /// 读取文件
        /// </summary>
        /// <returns> arry数组</returns>
        public string[] ReadTextFileDate()
        {
            string strInput = "";
            string GetStream = "";//读取返回字符
            FILENAME = Server.MapPath("/App_Data/yz110221.txt");
            if (File.Exists(FILENAME))
            {
                StreamReader sr = new StreamReader(FILENAME, UnicodeEncoding.GetEncoding("gb2312"));
                strInput = sr.ReadLine();
                for (int i = 0; i < strInput.Length; i++)
                {
                    //aa.Replace(",", "");
                    //strInput.Replace("指数值:", "");
                    //strInput.Replace("等级:", "");
                    GetStream += strInput + "!";
                    arry[i] = GetStream.Split(new char[] { '!' }).ToString();//分割成数组
                    strInput = sr.ReadLine();
                }
                sr.Close();
            }            return arry;
        }
        #endregion
        #region     构建表格
        /// <summary>
        /// 构建表格
        /// </summary>
        /// <returns></returns>
        public DataTable EditCharsBound()
        {
            ReadTextFileDate();
            string aa = arry[0].ToString();
            string title = aa.Replace("!", "");
            DataTable dt = new DataTable();            dt.Columns.Add("Content", System.Type.GetType("System.String"));       //新表的列字段
            dt.Columns.Add("Zs", System.Type.GetType("System.String"));
            dt.Columns.Add("Dj", System.Type.GetType("System.String"));
            dt.Columns.Add("Ts", System.Type.GetType("System.String"));
            //string [] arr=str.split(new char[] {','})//分割成数组
            for (int i = 1; i < arry.Length; i++)
            {
                for (int j = 0; j < arry[i].Length; i++)
                {                    string[,] err = new string[20000000, 10];
                    err[i, j] = arry[i].Split(new char[] { ':' }).ToString();
                    //string[] StrSomeInfo = arry[i].Split(new char[] { ':' });
                    //string[] col = StrSomeInfo[0].Split(new char[] { ',' });
                    //string[] col1 = StrSomeInfo[1].Split(new char[] { ',' });
                    //string[] col2 = StrSomeInfo[2].Split(new char[] { ',' });
                    DataRow NewRow = dt.NewRow();
                    if (i == 1)
                    {
                        NewRow["Content"] = err[0, 0].ToString();
                        NewRow["Zs"] = err[0, 1].ToString();
                        NewRow["Dj"] = err[1, 1].ToString();
                        NewRow["Ts"] = "建议小提示";
                        dt.Rows.Add(NewRow);
                    }
                    else
                    {
                        NewRow["Content"] = err[0, 0].ToString();
                        NewRow["Zs"] = err[1, 0].ToString();
                        NewRow["Dj"] = err[2, 0].ToString();
                        NewRow["Ts"] = err[2, 1].ToString() + err[2, 2].ToString();
                        dt.Rows.Add(NewRow);
                    }                }
            }
            return dt;
        }        #endregion

解决方案 »

  1.   

    NewRow["Content"] = err[0, 0]==null?"":err[0, 0].ToString();
      

  2.   

    你先看看文件中是不是用內容讀取出來了。
    然後輸出看看err裏面的內容。
    是不是空的。。
      

  3.   

    嗯 ,就那个err 没获取到,arry全部有。 那个err二维数组怎样才能获取到数据? 急。 谢谢
      

  4.   

    err[i, j] = arry[i].Split(new char[] { ':' }).ToString();
    按照你的這個寫法。
       for (int i = 1; i < arry.Length; i++)
      {
      for (int j = 0; j < arry[i].Length; i++)
    那err裏面應改是 從err[1,0]開始吧。。
    那你去取err[0,0]當然沒東西了。。
      

  5.   

    err[i, j] = arry[i].Split(new char[] { ':' }).ToString();
      

  6.   

    遍历err[0, 0]看看值是否为null
    List<T>.dictionary保存
    看看arry[i].Split(new char[] { ':' }).ToString();
    的Length