向DataRow中写入数据,报无法找到列0 或列1 的错误

向DataTable中添加数据,报错:无法找到列1

代码如下:

StreamReader sr = new StreamReader(fs, encoding);
                //每一行数据
                string strLine = "";
                //数组
                string[] DataLine = null;

                dt.Columns.Add(new DataColumn());

                while ((strLine = sr.ReadLine()) != null)
                {
                    DataLine = strLine.Split(',');
                    DataRow dr = dt.NewRow();
                    //将每一行数据填入DataTable的一行中
                    for (int i = 0; i < DataLine.Length; i++)
                    {
                        dr[i] = DataLine[i];
                    }
                    dt.Rows.Add(dr);

                }   

原因:增加数据行之前必须先创建数据列,但由于列数不确定,无法初始化合适的列。这种办法,将每行作为一个字符串写入DataTable,这样创建一个列就可以了。

 StreamReader sr = new StreamReader(fs, encoding);
                //每一行数据
                string strLine = "";
                
                dt.Columns.Add(new DataColumn());

                while ((strLine = sr.ReadLine()) != null)
                {                    
                    DataRow dr = dt.NewRow();
                    //将每一行数据填入DataTable的一行中
                    dr[0] = strLine;
                    dt.Rows.Add(dr);

                }   

折中办法解决这一问题。

posted @ 2021-11-04 21:51  VTech_kevin  阅读(1193)  评论(0编辑  收藏  举报