你好,我有下面的代码由于某种原因不能正常工作:SQL批量复制不会上传
我使用OLEDB来填补从通过FileUpload控件上载一个管道分隔文件中的数据集一个asp.net web应用程序。然后我拿到数据表,然后使用sql批量复制将数据复制到我已经在sql中设置的表中。
protected void btnUpload_Click(object sender, EventArgs e)
{
string filepath = fileUpload1.PostedFile.FileName;
PerformBulkCopy(GencoUpload(filepath));
}
public static DataTable GencoUpload(string path)
{
string full = Path.GetFullPath(path);
string file = Path.GetFileName(full);
string dir = Path.GetDirectoryName(full);
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\"" + dir +
"\\\";" + "Extended Properties=\"text;HDR=Yes;Format=Delimited(|)\";";
string query = "SELECT * FROM " + file;
DataTable dt = new DataTable();
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);
try
{
dAdapter.Fill(dt);
}
catch
{
// catch code
}
dAdapter.Dispose();
return dt;
}
private void PerformBulkCopy(DataTable GencoInfo)
{
string conStr = ConfigurationManager.ConnectionStrings["EDI"].ConnectionString;
using (SqlBulkCopy bulkcopy = new SqlBulkCopy(conStr))
{
bulkcopy.DestinationTableName = "dbo.GencoUploadTempTable";
bulkcopy.WriteToServer(GencoInfo);
}
}
有人可以帮助我为什么这不是加载到我的sql数据库?谢谢。
没有错误信息。按钮点击接受它,但没有数据加载到数据库中。它可能与管道(|)分隔符有关吗?我听说oledb不喜欢那个定界符。我不确定。 – Jeff 2012-02-23 15:13:47
@ user1049984,通过使用IDE的代码步骤。 dt和connString的值是什么?我感觉你的数据源不正确,因为dir只是一个目录。 – 2012-02-23 15:17:01
CONNSTRING值= CONNSTRING = “供应商= Microsoft.Jet.OLEDB.4.0;数据源= \” C:\\ \\的用户我的名字\\桌面\\\ “;扩展属性= \” 文本; HDR =是;格式=分隔(|)\ “;” – Jeff 2012-02-23 15:24:59