向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); }
折中办法解决这一问题。