向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);

                }   

折中办法解决这一问题。

上一篇:【ybt金牌导航6-5-4】【luogu P3157】动态逆序对(CDQ分治)(树状数组)


下一篇:.Net2.0连接PG数据注意事项