使用bcp,循环将本地txt文本导入远程sqlserver中
2009-09-29 15:12
274 查看
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;
}
引用空间:
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;
}
相关文章推荐
- bcp将本地txt文本导入远程sqlserver中,本地未装sqlserver
- bcp将本地txt文本导入远程sqlserver中,本地未装sqlserver
- SQLSERVER,不使用BCP,把查询结果输出为txt文本文件的存储过程
- 本地TXT文本文件导入远程sqlserver数据库
- DB2远程客户端无法使用import导入本地数据文件解决方案
- 如何使用BULK INSERT将txt文件导入sqlserver 数据库里
- 使用sqlldr向Oracle导入大的文本(txt)文件
- SQLServer怎样把本地数据导入到远程服务器上(转载)
- SQLServer使用BCP导入导出数据
- ios开发之使用UIWebView打开本地的HTML、txt、PDF、PPT文件、打开远程的共享资源
- oracle 本地使用命令导入数据到远程主机
- mysql创建数据库,创建数据库表导入xlsx、txt文本,查询、删除、插入数据语句的使用
- 如何使用mysqldump命令导入导出数据库下的数据或表结构(远程or本地都适合)
- SqlServer 数据的导入导出,使用bcp命令
- ubuntu下如何使用sshfs加载远程服务器目录到本地文件系统
- txt文本导入到sql server数据库
- 使用js操作本地或远程的excel
- SQLServer BCP 导入导出数据
- 使用bcp进行sybase 的批量导入导出
- 2 C#串口或TCP远程采集数据 chart图表使用示例 保存数据到access数据库和每日.txt文件并实时显示各参数曲线