Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload 文件上传和批量复制_File Upload_Sqlbulkcopy - Fatal编程技术网

File upload 文件上传和批量复制

File upload 文件上传和批量复制,file-upload,sqlbulkcopy,File Upload,Sqlbulkcopy,我有一个纯文本文件,其中包含一列数字,在web客户端中获取数字并将其传输到SQL数据库中。检索文件后,我将内容存储在临时数据表中,然后使用SqlBulkCopy尝试将数据表传输到数据库。但是,一旦我运行web客户端并导入文件,程序就会挂起。下面列出了我到目前为止所做的工作的代码 将文件传输到数据表 private DataTable readTextFile() { DataTable dt = new DataTable(); FileUpload fi

我有一个纯文本文件,其中包含一列数字,在web客户端中获取数字并将其传输到SQL数据库中。检索文件后,我将内容存储在临时数据表中,然后使用SqlBulkCopy尝试将数据表传输到数据库。但是,一旦我运行web客户端并导入文件,程序就会挂起。下面列出了我到目前为止所做的工作的代码

将文件传输到数据表

private DataTable readTextFile()
    {
        DataTable dt = new DataTable();
        FileUpload file = new FileUpload();

        dt.Columns.Add("Claim Number", typeof(Int32)); 
        file = (FileUpload)grdCriteria.FindControl("exportUpload");
        StreamReader read = new StreamReader(file.PostedFile.FileName);

        while ((read.ReadLine()) != null)
            dt.Rows.Add((Int32.Parse(read.ReadLine()))); 

        return dt; 
    }
将DataTable插入SQL数据库

DataTable dt = readTextFile();
SqlBulkCopy bk = new SqlBulkCopy(Profile.ConnectionKey.CAM);

bk.DestinationTableName = dt.TableName;
bk.WriteToServer(dt);

谢谢

你的意思是在循环中调用ReadLine两次吗?或者您的意思是执行以下操作:while(true){string line=read.ReadLine();if(line!=null){dt.Rows.Add(int.Parse(line));}else{break;}程序挂起在哪里?您是否尝试调试程序?文件有多大?可能是因为文件太大,读取或将其推送到服务器需要很多时间?您没有设置TableName值,因此数据库加载程序将不知道将数据放入哪个表中。此外,您只读取每秒钟的值,因为在每个循环迭代中调用ReadLine()两次。