读书人

晕 导入文本导入不进去 求大神。解决方

发布时间: 2013-05-02 09:39:29 作者: rapoo

晕 导入文本导入不进去 求大神。

   private void button1_Click(object sender, EventArgs e)
{
this.openFileDialog1.Filter = "文本文件(*.txt)|*.txt";

if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
string FileName = this.openFileDialog1.FileName;
char fenge = '-';
string strErrorMessage = "出错";
dataGridView1.DataSource = TxtToDataTable(FileName, fenge, ref strErrorMessage);
int count = dataGridView1.RowCount - 1;
lblCount.Text = "共导入" + count + "条数据";
// 你的 处理文件路径代码
}
}

public static DataTable TxtToDataTable(string strFileName, char strSplit, ref string strErrorMessage)
{
DataTable dtReturn = new DataTable();

try
{
string[] strFileTexts = File.ReadAllLines(strFileName);

if (strFileTexts.Length == 0)
{
strErrorMessage = "文件中没有数据!";
return null;
}

string[] strLineTexts = strFileTexts[0].Split('-');
if (strLineTexts.Length == 0)
{
strErrorMessage = "文件中数据格式不正确!";
return null;
}


//for (int i = 0; i < strLineTexts.Length; i++)


//{
// dtReturn.Columns.Add("Columns" + i.ToString());
//}
dtReturn.Columns.Add("账号");
dtReturn.Columns.Add("密码");
dtReturn.Columns.Add("注册状态");


for (int i = 0; i < strFileTexts.Length; i++)
{
strLineTexts = strFileTexts[i].Replace("----","-").Split('-');
DataRow dr = dtReturn.NewRow();
for (int j = 0; j < strLineTexts.Length; j++)
{
dr[j] = strLineTexts[j].ToString();
}
dtReturn.Rows.Add(dr);
}
}
catch (Exception ex)
{
strErrorMessage = "读入数据出错!" + ex.Message;

return null;
}

return dtReturn;
}



上面的代码,导入自己填写的格式就没错,导入 库里的就导入不进去,求大神指导。。

能导入的文本下载这个 http://pan.baidu.com/share/link?shareid=393658&uk=1026065227

不能导入是这个,下载下,http://pan.baidu.com/share/link?shareid=393660&uk=1026065227
[解决办法]
for (int i = 0; i < strFileTexts.Length; i++)这句的来源是string[] strLineTexts = strFileTexts[0].Split('-');应该是错误的,开始你还没有strLineTexts = strFileTexts[i].Replace("----","-").Split('-');这句那这样的话strFileTexts.Length应该是错的。

读书人网 >C#

热点推荐