首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于TXT文件导入到DATASET中的有关问题

2013-08-25 
关于TXT文件导入到DATASET中的问题。大家好,我想讲TXT文件先FILL到DATASET中,获取TXT文件的数量,然后再用Sq

关于TXT文件导入到DATASET中的问题。
  大家好,我想讲TXT文件先FILL到DATASET中,获取TXT文件的数量,然后再用SqlBulkCopy将数据写入SQL数据库,现在将TXT数据FILL到DATASET时,FILL那句报错”找不到可安装的 ISAM。“,麻烦各位帮忙指点一下,多谢大家。


        OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "请选择要导入的文件:";
            dlg.Filter = "文本文件(*.txt)|*.txt|所有文件|*.*";
            dlg.Multiselect = true;

 if (dlg.ShowDialog() == DialogResult.OK)
            {
                string[] FileNames = dlg.FileNames;

                foreach (string FileName in FileNames)
                {
                    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data?Source=" + FileName + ";Extended?Properties=Text";

                    OleDbConnection conn = new OleDbConnection(strConn);
                   
                    DataSet DS = new DataSet();

                    OleDbDataAdapter adapter = new OleDbDataAdapter("select * from " + FileName, conn);

                    OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

                    adapter.Fill(DS,"x");

                    MessageBox.Show(DS.Tables[0].Rows.Count.ToString());

                }
            }


[解决办法]
txt 不是数据库~
不可以
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FileName + ";Extended Properties=Text";

                    OleDbConnection conn = new OleDbConnection(strConn);
                   
                    DataSet DS = new DataSet();

                    OleDbDataAdapter adapter = new OleDbDataAdapter("select * from " + FileName, conn);

先考虑怎么将txt读成string
然后才分割成和数据库对应的
最后插入
[解决办法]
1楼正解,  txt不是数据库,不可以当数据库来连接查询,只能当作普通的文件读取,
然后既然你要插入数据库的东西,那么这个TXT文件肯定必须是有特定的规律来分割的,
读取出来根据这个分隔分别写入数据库。

 public  string ReadText()
    {
        string str = string.Empty;
        try
        {
            if (!File.Exists(HttpContext.Current.Server.MapPath("XXX/XXXXX.txt")))
            {
                return "";
            }
            StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath("XXX/XXX.txt"), System.Text.Encoding.Default);
            String text = sr.ReadToEnd(); //全部读取
            
            //string lineText= sr.ReadLine();//逐行读取
            


            str=text
            sr.Dispose();
            sr.Close();
        }
        catch
        {

        }
        return str;
    }

读取出来之后进行分隔插入数据库,


另外读取肯定是要在服务端的,所以并不是你把客户端的文件选择到了框框里面就能读取到了,要上传到服务端,然后读取服务端保存的路径下面对应的文件,

或者直接把文件流传递给读取的方法。

热点排行