• 使用bcp,循环将本地txt文本导入远程sqlserver中


    txt大文件导入远程数据库,使用bcp效率极高,关于bcp的资料比较少,写了个导入的方法,在项目中应用成功,代码如下
    引用空间:
    using System;
    using
     System.Data;
    using
     System.Data.SqlClient;
    using System.Diagnostics;

    private void Page_Load(object sender, System.EventArgs e)
            
    {
                
    // 在此处放置用户代码以初始化页面

                string Conn = "data source=192.168.0.1;initial catalog=Test;user id=sa;password=1";
                SqlConnection sqlConn 
    = new
     SqlConnection(Conn);
                SqlCommand cmd 
    = new
     SqlCommand();
                cmd.Connection 
    =
     sqlConn;
                SqlDataAdapter sda 
    = new
     SqlDataAdapter(cmd);
                sqlConn.Open();
                cmd.CommandText 
    = "Select * from Files"
    ;
                DataSet ds 
    = new
     DataSet();
                sda.Fill(ds);

                
    if(ds.Tables[0].Rows.Count>0
    )
                
    {
                    
    string BcpExec = ""
    ;
                    
    for(int i=0;i<ds.Tables[0].Rows.Count;i++
    )//循环取本地文件名
                    
    {            
                        BcpExec 
    = @"bcp Test..Data in D:\test\"
    ;
                        BcpExec 
    += ds.Tables[0].Rows[i]["path"
    ].ToString();
                        BcpExec 
    += " -S192.168.0.1 -Usa -P1 -c -t,"
    ;//组合bcp命令
                        Response.Write(ExeCommand(BcpExec));//执行bcp命令并显示操作结果
                    }

                }

            }



            
    /// <summary>
            
    /// 执行Cmd命令
            
    ///
     确保已经server上已经安装sql,否则使用不了bcp命令,
            
    ///
     如果没有安装sqlserver需要将bcp.exe拷贝到相应目录(这个条件尚未测试)
            
    /// </summary>

            
    /// <param name="commandText"></param>
            
    /// <returns></returns>

            public static string ExeCommand(string commandText)
            
    {
                Process p 
    = new
     Process();
                p.StartInfo.FileName 
    = "cmd.exe"
    ;
                p.StartInfo.UseShellExecute 
    = false
    ;
                p.StartInfo.RedirectStandardInput 
    = true
    ;
                p.StartInfo.RedirectStandardOutput 
    = true
    ;
                p.StartInfo.RedirectStandardError 
    = true
    ;
                p.StartInfo.CreateNoWindow 
    = true
    ;
                
    string strOutput = null
    ;
                
    try

                
    {
                    p.Start();
                    p.StandardInput.WriteLine(commandText);
                    p.StandardInput.WriteLine(
    "exit"
    );
                    strOutput 
    =
     p.StandardOutput.ReadToEnd();
                    p.WaitForExit();
                    p.Close();
                }

                
    catch(Exception e)
                
    {
                    strOutput 
    =
     e.Message;
                }

                
    return strOutput;
            }

    注:ExeCommand函数执行cmd命令是参考秋枫@Blog http://blog.csdn.net/zhzuo/archive/2004/12/25/229006.aspx
  • 相关阅读:
    ZH奶酪:Python 中缀表达式转换后缀表达式
    ZH奶酪:IBG项目工作内容
    ZH奶酪:通过CSS自定义HTML中hr样式-颜色-形状
    ZH奶酪:Yii PHP sum SQL查询语句
    ZH奶酪:纯CSS自定义Html中Checkbox复选框样式
    ZH奶酪:Ubuntu客户端通过SSH方式远程登录Ubuntu服务器
    ZH奶酪:PHP判断图片格式的7种方法
    ZH奶酪:PHP上传图片三个步骤
    ZH奶酪:PHP图片压缩(TinyPNG在线API)和(使用Imagick扩展)
    ZH奶酪:Linux/Ubuntu 安装/卸载 软件
  • 原文地址:https://www.cnblogs.com/cndsn/p/379019.html
Copyright © 2020-2023  润新知