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

                }   

折中办法解决这一问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM