亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

FileUpload上傳文件,并實現c#使用Renci.SshNet.dll實現SFTP文件傳輸

2019-11-14 15:50:50
字體:
來源:轉載
供稿:網友

fileupload上傳文件和jquery的uplodify控件使用方法類似,對服務器控件不是很熟悉,記錄一下。

主要是記錄新接觸的sftp文件上傳。服務器環境下使用freesshd搭建好環境后,windos環境下可視化工具filezilla可#以很容易實現文件的傳輸。

本例中主要是c#使用Renci.SshNet.dll實現SFTP文件傳輸。

代碼如下:

PRotected void btnExcelImport_Click(object sender, EventArgs e)
{
if (this.LogisticsUpload.HasFile)//判斷是否存在上傳文件
{
string filename = this.LogisticsUpload.PostedFile.FileName;
string extension = (new FileInfo(filename)).Extension;
string newfilename = System.DateTime.Now.ToString("yyyyMMddHHmmss") + extension;

//判斷是否存在上傳路徑,如果不存在,則創建
if (!Directory.Exists(Server.MapPath("../Upload/Logistics")))
{
Directory.CreateDirectory(Server.MapPath("../Upload/Logistics"));
}
string path = Server.MapPath("../Upload/Logistics/");
this.LogisticsUpload.PostedFile.SaveAs(path + newfilename);//這一步實現上傳文件

//插入數據庫
LogisticsLog logmodel = new LogisticsLog();
logmodel.FileName = filename;
logmodel.SavePath = path;
logmodel.CreateTime = DateTime.Now;
logmodel.CreaterId = base.CurrentUser.UserID.ToString();

logmodel.AgentId = this.AgentDropDownList.SelectedItem.Value.ToInt();
logmodel.AgentName = this.AgentDropDownList.SelectedItem.Text.ToString();
logmodel.Status = Convert.ToInt32(Core.EnumDefine.LogistiCSStatus.wait);

//通過sftp方式上傳到服務器
string sftppath = "/" + filename;//sftp根目錄加上存入文件名
string localpath = path + newfilename;//本地文件
Framework.Common.SFTPOperation sftp = new Framework.Common.SFTPOperation(Config.ConfigSettings.Instance.SAP_SFTP_SERVER, int.Parse(Config.ConfigSettings.Instance.SAP_SFTP_PORT), Config.ConfigSettings.Instance.SAP_SFTP_ACCOUNT, Config.ConfigSettings.Instance.SAP_SFTP_PASSWord);
sftp.Connect();
sftp.Put(localpath, sftppath);
sftp.Disconnect();

LogisticsBusinessService log = new LogisticsBusinessService();
if (log.Add(logmodel))
{
//Response.Write("<scraspx','_self')</script>");
this.AlertMessage("上傳成功!");

Response.Redirect("LogisticsList.aspx");
}
else
{
this.AlertMessage("上傳失??!");
}
}
}

 

sftp操作類,用到的方法已經標黃,直接看,主要是put方法

public class SFTPOperation
{
#region 字段或屬性
/// <summary>
/// sftp連接
/// </summary>
private SftpClient sftp;
/// <summary>
/// SFTP連接狀態
/// </summary>
public bool Connected { get { return sftp.IsConnected; } }
/// <summary>
/// 主機地址
/// </summary>
private const string HOST = "192.168.0.80";//192.168.0.80 //140.231.210.125
/// <summary>
/// 端口
/// </summary>
private const int PORT = 22;
/// <summary>
/// 用戶名
/// </summary>
private const string USERNAME = "siemens_sftp";//siemens_sftp //sie_icit
/// <summary>
/// 密碼
/// </summary>
private const string PASSWORD = "password01!";//password01! //Icitsftp20140826+-

#endregion

#region 構造

/// <summary>
/// 構造
/// </summary>
public SFTPOperation()
{
var keyboardAuthMethod = new KeyboardInteractiveAuthenticationMethod(USERNAME);
keyboardAuthMethod.AuthenticationPrompt += delegate(Object senderObject, AuthenticationPromptEventArgs eventArgs)
{
foreach (var prompt in eventArgs.Prompts)
{
if (prompt.Request.Equals("Password: ",
StringComparison.InvariantCultureIgnoreCase))
{
prompt.Response = PASSWORD;
}
}
};
var passwordAuthMethod = new PasswordAuthenticationMethod(USERNAME, PASSWORD);
var connInfo = new ConnectionInfo(HOST, USERNAME, new AuthenticationMethod[] {
passwordAuthMethod,
keyboardAuthMethod
});
sftp = new SftpClient(connInfo);
//sftp = new SftpClient(HOST, PORT, USERNAME, PASSWORD);
}
/// <summary>
/// 構造
/// </summary>
/// <param name="host">主機</param>
/// <param name="port">端口</param>
/// <param name="user">用戶名</param>
/// <param name="pwd">密碼</param>
public SFTPOperation(string host, int port, string user, string pwd)
{
var keyboardAuthMethod = new KeyboardInteractiveAuthenticationMethod(user);
keyboardAuthMethod.AuthenticationPrompt += delegate(Object senderObject, AuthenticationPromptEventArgs eventArgs)
{
foreach (var prompt in eventArgs.Prompts)
{
if (prompt.Request.Equals("Password: ",
StringComparison.InvariantCultureIgnoreCase))
{
prompt.Response = pwd;
}
}
};
var passwordAuthMethod = new PasswordAuthenticationMethod(user, pwd);
var connInfo = new ConnectionInfo(host, user, new AuthenticationMethod[] {
passwordAuthMethod,
keyboardAuthMethod
});
sftp = new SftpClient(connInfo);
//sftp = new SftpClient(host, port, user, pwd);
}
#endregion

#region 連接SFTP
/// <summary>
/// 連接SFTP
/// </summary>
/// <returns>true成功</returns>
public bool Connect()
{
try
{
if (!Connected)
{
sftp.Connect();
}
return true;
}
catch (Exception ex)
{
throw new Exception(string.Format("連接SFTP失敗,原因:{0}", ex.Message));
}
}
#endregion

#region 斷開SFTP
/// <summary>
/// 斷開SFTP
/// </summary>
public void Disconnect()
{
try
{
if (sftp != null && Connected)
{
sftp.Disconnect();
}
}
catch (Exception ex)
{
throw new Exception(string.Format("斷開SFTP失敗,原因:{0}", ex.Message));
}
}
#endregion

#region SFTP上傳文件
/// <summary>
/// SFTP上傳文件
/// </summary>
/// <param name="localPath">本地路徑</param>
/// <param name="remotePath">遠程路徑</param>
public void Put(string localPath, string remotePath)
{
try
{
using (var file = File.OpenRead(localPath))
{
sftp.UploadFile(file, remotePath);
}
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件上傳失敗,原因:{0}", ex.Message));
}
}
/// <summary>
/// SFTP上傳文件
/// </summary>
/// <param name="stream">文件流</param>
/// <param name="remotePath">遠程路徑</param>
public void Put(Stream stream, string remotePath)
{
try
{
Connect();
sftp.UploadFile(stream, remotePath);
Disconnect();
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件上傳失敗,原因:{0}", ex.Message));
}
}
#endregion

#region SFTP獲取文件
/// <summary>
/// SFTP獲取文件
/// </summary>
/// <param name="remotePath">遠程路徑</param>
/// <param name="localPath">本地路徑</param>
public void Get(string remotePath, string localPath)
{
try
{
var byt = sftp.ReadAllBytes(remotePath);

File.WriteAllBytes(localPath, byt);
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件獲取失敗,原因:{0}", ex.Message));
}

}

public void DownloadFile()
{
//sftp.DownloadFile()
}

 

#endregion

#region 刪除SFTP文件
/// <summary>
/// 刪除SFTP文件
/// </summary>
/// <param name="remotePath">遠程路徑</param>
public void Delete(string remotePath)
{
try
{
sftp.Delete(remotePath);
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件刪除失敗,原因:{0}", ex.Message));
}
}
/// <summary>
/// 刪除SFTP文件
/// </summary>
/// <param name="remoteFile">遠程路徑</param>
public void DeleteFile(string remoteFile)
{
try
{
Connect();
sftp.DeleteFile(remoteFile);
Disconnect();
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件刪除失敗,原因:{0}", ex.Message));
}
}
#endregion

#region 獲取SFTP文件列表
/// <summary>
/// 獲取SFTP文件列表
/// </summary>
/// <param name="remotePath">遠程目錄</param>
/// <param name="fileSuffix">文件后綴</param>
/// <returns></returns>
public ArrayList GetFileList(string remotePath, string fileSuffix)
{
try
{
fileSuffix = fileSuffix.ToUpper();
var files = sftp.ListDirectory(remotePath);
var objList = new ArrayList();
foreach (var file in files)
{
if (file.IsDirectory) continue;
string name = file.Name.ToUpper();
if (name.Length > (fileSuffix.Length + 1) && fileSuffix == name.Substring(name.Length - fileSuffix.Length))
{
objList.Add(file.FullName);
}
}
return objList;
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件列表獲取失敗,原因:{0}", ex.Message));
}
}
#endregion

#region 移動SFTP文件
/// <summary>
/// 移動SFTP文件
/// </summary>
/// <param name="oldRemotePath">舊遠程路徑</param>
/// <param name="newRemotePath">新遠程路徑</param>
public void Move(string oldRemotePath, string newRemotePath)
{
string fileName = string.Empty;
try
{
newRemotePath = !sftp.WorkingDirectory.Equals("/") ? sftp.WorkingDirectory + newRemotePath : newRemotePath;
CreateDirectory(newRemotePath, false);
fileName = oldRemotePath.LastIndexOf('/') != -1 ? oldRemotePath.Substring(oldRemotePath.LastIndexOf('/') + 1) : oldRemotePath;

SftpFile file = sftp.ListDirectory(newRemotePath).SingleOrDefault(l => l.Name == fileName);

if (file!=null)
fileName = fileName.Substring(0, fileName.LastIndexOf(".")) + DateTime.Now.ToString("_yyyyMMddHHmmss") + "." + fileName.Substring(fileName.LastIndexOf(".") + 1);
sftp.RenameFile(oldRemotePath, newRemotePath + "/" + fileName);
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件移動失敗,原因:{0}", ex.Message));
}
}
#endregion

#region 創建目錄
/// <summary>
/// 創建目錄
/// </summary>
/// <param name="remotePath">遠程目錄</param>
/// <param name="isDisconnect">是否關閉連接</param>
private void CreateDirectory(string remotePath,bool isDisconnect)
{
try
{
string[] paths = remotePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
string curPath = "/";
for (int i = 0; i < paths.Length; i++)
{
curPath += paths[i];
if (!sftp.Exists(curPath))
{
sftp.CreateDirectory(curPath);
}
if (i < paths.Length - 1)
curPath += "/";
}
}
catch (Exception ex)
{
throw new Exception(string.Format("創建目錄失敗,原因:{0}", ex.Message));
}
}
#endregion

#region 獲取目錄列表
/// <summary>
/// 獲取目錄列表
/// </summary>
/// <param name="remotePath">遠程目錄路徑</param>
/// <returns></returns>
public ArrayList GetDirectoryList(string remotePath)
{
try
{
var files = sftp.ListDirectory(remotePath);
var objList = new ArrayList();
foreach (var file in files)
{
if (!file.IsDirectory) continue;
if(!file.Name.Equals(".") && !file.Name.Equals(".."))
objList.Add(file.FullName);
}
return objList;
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP目錄列表獲取失敗,原因:{0}", ex.Message));
}
}
#endregion

#region 刪除遠程目錄
/// <summary>
/// 刪除遠程目錄(包含目錄內文件、子目錄)
/// </summary>
/// <param name="remoteDirectory">遠程目錄</param>
public void DeleteDirectory(string remoteDirectory)
{
try
{
//delete files
var files = sftp.ListDirectory(remoteDirectory);
foreach (var file in files)
{
if (!file.IsDirectory)
sftp.DeleteFile(file.FullName);
else {
if(!file.Name.Equals(".") && !file.Name.Equals(".."))
{
DeleteDirectory(file.FullName);
}
}
}
sftp.DeleteDirectory(remoteDirectory);
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP目錄刪除失敗,原因:{0}", ex.Message));
}
}
#endregion

#region 獲取SFTP數據表格
/// <summary>
/// 獲取SFTP數據表格
/// </summary>
/// <param name="remotePath">遠程路徑</param>
/// <returns>DataTable</returns>
public DataTable GetDataTable(string remotePath)
{
StreamReader sr = null;
try
{
DataTable dt = new DataTable();
Connect();
sr = sftp.OpenText(remotePath);

//記錄每次讀取的一行記錄
string strLine = "";
//記錄每行記錄中的各字段內容
string[] aryLine;
//標示列數
int columnCount = 0;
//標示是否是讀取的第一行
bool IsFirst = true;

//逐行讀取CSV中的數據
while ((strLine = sr.ReadLine()) != null)
{
aryLine = strLine.Trim().Split('/t'); //把讀取到的內容分割
if (IsFirst == true)
{
IsFirst = false;
columnCount = aryLine.Length;
//創建列
for (int i = 0; i < columnCount; i++)
{
if (!dt.Columns.Contains(aryLine[i]))
{
DataColumn dc = new DataColumn(aryLine[i]);
dt.Columns.Add(dc);
}
else
columnCount--;
}
}
else
{
DataRow dr = dt.NewRow(); //創建行
for (int j = 0; j < dt.Columns.Count; j++)
{
dr[j] = aryLine.Length > j ? aryLine[j] : "";
}
dt.Rows.Add(dr);
}
}
return dt;
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件轉換失敗,原因:{0}", ex.Message));
}
finally
{
sr.Dispose();
sr.Close();
Disconnect();
}
}
#endregion

#region CSV => DataTable filetype
public DataTable GetDataTable(string remotePath, string filetype)
{
StreamReader sr = null;
try
{
DataTable dt = new DataTable();
sr = sftp.OpenText(remotePath);

//記錄每次讀取的一行記錄
string strLine = "";
//記錄每行記錄中的各字段內容
string[] aryLine;
//標示列數
int columnCount = 0;
//標示是否是讀取的第一行
bool IsFirst = true;

//逐行讀取CSV中的數據
while ((strLine = sr.ReadLine()) != null)
{
aryLine = strLine.Trim().Split('/t'); //把讀取到的內容分割
if (IsFirst == true)
{
IsFirst = false;
columnCount = aryLine.Length;
//創建列
for (int i = 0; i < columnCount; i++)
{
if (!dt.Columns.Contains(aryLine[i]))
{
string columnName = GetColumnName(aryLine[i], filetype);

DataColumn dc = new DataColumn(columnName);
dt.Columns.Add(dc);
}
else
columnCount--;
}
}
else
{
DataRow dr = dt.NewRow(); //創建行
for (int j = 0; j < dt.Columns.Count; j++)
{
//去除前導0
if (dt.Columns[j].ColumnName.Equals("KUNNR") || dt.Columns[j].ColumnName.Equals("MATNR") || dt.Columns[j].ColumnName.Equals("Invoice_Create_Date") || dt.Columns[j].ColumnName.Equals("Invoice_Create_Time") || dt.Columns[j].ColumnName.Equals("Invoice_Release_Date") || dt.Columns[j].ColumnName.Equals("Invoice_Release_Time"))
dr[j] = aryLine.Length > j ? aryLine[j].TrimStart('0') : "";
//decimal 類型轉換
else if (dt.Columns[j].ColumnName.Equals("Grossweight") || dt.Columns[j].ColumnName.Equals("NetWeight") || dt.Columns[j].ColumnName.Equals("ProductListPrice"))
{
dr[j] = aryLine[j].ToDecimal();
}
//int 類型轉換
else if (dt.Columns[j].ColumnName.Equals("Per") || dt.Columns[j].ColumnName.Equals("PlannedDeliveryTime") || dt.Columns[j].ColumnName.Equals("GRT"))
{
dr[j] = aryLine[j].ToInt();
}
else
dr[j] = aryLine.Length > j ? aryLine[j] : "";

if (aryLine.Length < columnCount && j == aryLine.Length - 1)
j = dt.Columns.Count;
}
dt.Rows.Add(dr);
}
}
return dt;
}
catch (Exception ex)
{
throw new Exception(string.Format("SFTP文件轉換失敗,原因:{0}", ex.Message));
}
finally
{
sr.Dispose();
sr.Close();
}
}

private string GetColumnName(string columnName, string filetype)
{
string restr = columnName;
switch (filetype)
{
case "SO_PO_DOWNLOAD":
switch (columnName)
{
case "SO Number":
restr = "VBELN";
break;
case "SO Cust. PO No.":
restr = "BSTKD";
break;
case "Customer PO line item No":
restr = "CustItemNo";
break;
case "ZBA3 DATE":
restr = "ZBA3_DATE";
break;
case "ZBAV DATE":
restr = "ZBAV_DATE";
break;
case "ZOP3 DATE":
restr = "ZOP3_DATE";
break;
case "Credit Block":
restr = "CMGST";
break;
case "Credit Block Description":
restr = "CMGST_TEXT";
break;
case "Delivery number":
restr = "DeliveryNumber";
break;
case "Delivery Created date":
restr = "LFDAT";
break;
case "Delivery quantity":
restr = "LFIMG";
break;
case "Vendor Name":
restr = "NAME1";
break;
case "Delivery item":
restr = "LIPS_POSNR";
break;
case "Material number":
restr = "MATNR";
break;
case "SO Net Value Item":
restr = "NETWR";
break;
case "SO Item":
restr = "POSNR";
break;
case "SO Item Category":
restr = "PSTYV";
break;
case "Billing number":
restr = "InvoiceNo";
break;
case "Billing Item":
restr = "InvoiceItemNo";
break;
case "MLFB":
restr = "YYBCEZNDR";
break;
case "Options":
restr = "Options";
break;
case "GR Quantity":
restr = "WEMNG";
break;
case "GR Date":
restr = "GR_date";
break;
case "EKES_EINDT_AB":
restr = "EINDT_AB";
break;
case "EKES_EINDT_LA":
restr = "EINDT_LA";
break;
case "PO item confirmed AB qty":
restr = "MENGE_AB";
break;
case "PO item confirmed LA qty":
restr = "MENGE_LA";
break;
case "PO Number":
restr = "EBELN";
break;
case "PO Item":
restr = "EBELP";
break;
case "Customer Number":
restr = "KUNNR";
break;
case "Customer Name1":
restr = "KNA1_NAME1";
break;
case "SO Date":
restr = "AUDAT";
break;
case "PO date":
restr = "BSTDK";
break;
case "Discount":
restr = "Discount";
break;
case "Cumulative Order Quantity in Sales":
restr = "ItemRequiredQuantity";
break;
case "Material Description":
restr = "ARKTX";
break;
case "ZOP2 DATE":
restr = "ZOP2_DATE";
break;
case "ZRDE DATE":
restr = "ZRDE_DATE";
break;
case "ZLAV DATE":
restr = "ZLAV_DATE";
break;
case "Employee ID":
restr = "Employee_ID";
break;
case "Employee Name":
restr = "Employee_Name";
break;
case "VBEZ":
restr = "VBEZ";
break;
case "POM-item":
restr = "POM_Item";
break;
case "ZMIN":
restr = "ZMIN_Block";
break;
case "DLBL":
restr = "Delivery_Block";
break;
case "Header status":
restr = "Order_Status";
break;
case "Reason for rejection":
restr = "Reason_For_Rejection";
break;
case "Invoice Qty":
restr = "Invoice_Qty";
break;
case "Invoice creation date":
restr = "Invoice_Create_Date";
break;
case "Invoice creation time":
restr = "Invoice_Create_Time";
break;
case "Invoice release date":
restr = "Invoice_Release_Date";
break;
case "Invoince release time":
restr = "Invoice_Release_Time";
break;
case "email address":
restr = "Email_Address";
break;
case "SO Time":
restr = "SO_Time";
break;
case "SPR No":
restr = "SPR_No";
break;
case "PGI Date":
restr = "PGI_Date";
break;
case "PGI Time":
restr = "PGI_Time";
break;
case "Customer required date":
restr = "Customer_Required_Date";
break;
case "VBEZ-CODE":
restr = "VBEZ_Code";
break;
default:
restr = columnName;
break;
}
break;
case "MATERIAL_STOCK_DOWNLOAD":
switch (columnName)
{
case "Base Unit":
restr = "Base_Unit";
break;
case "Material Number":
restr = "Material_Number";
break;
case "Plant":
restr = "Plant";
break;
case "Storage Location":
restr = "Storage_Location";
break;
case "Own and consignment stock":
restr = "Unrestricted_Stock";
break;
default:
restr = columnName;
break;
}
break;
case "MATERIAL_MASTER_DOWNLOAD":
switch (columnName)
{
case "Base Unit":
restr = "BaseUnit";
break;
case "Currency":
restr = "Currency";
break;
case "Dist Channel":
restr = "DistChannel";
break;
case "Gross weight":
restr = "Grossweight";
break;
case "GRT":
restr = "GRT";
break;
case "Item Category Group":
restr = "ItemCategoryGroup";
break;
case "Material Description":
restr = "MaterialDescription";
break;
case "Material Group":
restr = "MaterialGroup";
break;
case "Material Number":
restr = "MaterialNumber";
break;
case "Print":
restr = "MLFB";
break;
case "Sort":
restr = "MLFB_Sort";
break;
case "Net Weight":
restr = "NetWeight";
break;
case "Options":
restr = "Options";
break;
case "Per":
restr = "Per";
break;
case "Planned Delivery Time":
restr = "PlannedDeliveryTime";
break;
case "Plant":
restr = "Plant";
break;
case "Product List Price":
restr = "ProductListPrice";
break;
case "Profit Center":
restr = "ProfitCenter";
break;
case "Sales Org":
restr = "SalesOrg";
break;
case "Unit of Measure":
restr = "UnitofMeasure";
break;
case "Vendor Name":
restr = "VendorName";
break;
case "Vendor Number":
restr = "VendorNumber";
break;
case "Weight UOM":
restr = "WeightUOM";
break;
case "Min. dely qty"://Min.order qty
restr = "Min_order_qty";
break;
case "Material Status":
restr = "MaterialStatus";
break;
case "GBK":
restr = "GBK";
break;
case "Product hierarchy":
restr = "ProductHierarchy";
break;
default:
restr = columnName;
break;
}
break;
}

return restr;
}
#endregion

#region CSV => DataTable by filetype new
/// <summary>
/// CSV 提取數據到 DataTable
/// </summary>
/// <param name="remotePath">遠程路徑</param>
/// <param name="filetype">文件類別(訂單/庫存/物料)</param>
/// <returns></returns>
public DataTable GetDataTable_New(string remotePath, string filetype)
{
using (StreamReader sr = sftp.OpenText(remotePath))
{
DataTable dt = new DataTable();
//記錄每次讀取的一行記錄
string strLine = "";
//記錄每行記錄中的各字段內容
string[] aryLine;
//標示是否是讀取的第一行
bool IsFirst = true;

//逐行讀取CSV中的數據
while ((strLine = sr.ReadLine()) != null)
{
aryLine = strLine.Trim().Split('/t'); //把讀取到的內容分割
if (IsFirst == true)
{
//創建列
IsFirst = false;
for (int i = 0; i < aryLine.Length; i++)
{
string columnName = GetColumnName_New(aryLine[i], filetype);
if (!dt.Columns.Contains(columnName))
dt.Columns.Add(new DataColumn(columnName));
}
}
else
{
//創建行
DataRow dr = dt.NewRow();
for (int j = 0; j < dt.Columns.Count; j++)
dr[j] = aryLine.Length > j && !string.IsNullOrEmpty(aryLine[j]) ? aryLine[j] : "";
dt.Rows.Add(dr);
}
}
return dt;
}
}

/// <summary>
/// 映射字段名
/// </summary>
/// <param name="columnName">DT 列名</param>
/// <param name="filetype">文件類別</param>
/// <returns></returns>
private string GetColumnName_New(string columnName, string filetype)
{
string order = System.Configuration.ConfigurationManager.AppSettings["Order"];
string stock = System.Configuration.ConfigurationManager.AppSettings["Stock"];
string master = System.Configuration.ConfigurationManager.AppSettings["Master"];

string restr = columnName;
if (filetype.Equals(order))
{
switch (columnName)
{
//未完成
default:
restr = columnName;
break;
}
}
if (filetype.Equals(stock))
{
switch (columnName)
{
case "Material Number":
restr = "MaterialNumber";
break;
case "Own and consignment stock":
restr = "StockQuantity";
break;
default:
restr = columnName;
break;
}
}
if (filetype.Equals(master))
{
switch (columnName)
{
case "Material Number":
restr = "MaterialNumber";
break;
case "Print":
restr = "MLFB_Print";
break;
case "Sort":
restr = "MLFB_Sort";
break;
case "Material Description":
restr = "MaterialDescription";
break;
case "Material Group":
restr = "MaterialGroup";
break;
case "Item Category Group":
restr = "ItemCategoryGroup";
break;
case "Base Unit":
restr = "BaseUnit";
break;
case "Currency":
restr = "Currency";
break;
case "Dist Channel":
restr = "DistChannel";
break;
case "Gross weight":
restr = "GrossWeight";
break;
case "Net Weight":
restr = "NetWeight";
break;
case "GRT":
restr = "GRT";
break;
case "Options":
restr = "Options";
break;
case "Per":
restr = "Per";
break;
case "Planned Delivery Time":
restr = "PlannedDeliveryTime";
break;
case "Plant":
restr = "Plant";
break;
case "Product List Price":
restr = "ListPrice";
break;
case "Profit Center":
restr = "ProfitCenter";
break;
case "Sales Org":
restr = "SalesOrg";
break;
case "Unit of Measure":
restr = "UnitOfMeasure";
break;
case "Weight UOM":
restr = "WeightUOM";
break;
case "Vendor Name":
restr = "VendorName";
break;
case "Vendor Number":
restr = "VendorNumber";
break;
case "Min. dely qty":
restr = "Min_Dely_Qty";
break;
case "Material Status":
restr = "MaterialStatus";
break;
case "GBK":
restr = "GBK";
break;
case "Product hierarchy":
restr = "ProductHierarchy";
break;
default:
restr = columnName;
break;
}
}
return restr;
}
#endregion
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲另类xxxx| 亚洲sss综合天堂久久| 精品久久久免费| 在线观看国产精品91| 秋霞成人午夜鲁丝一区二区三区| 色综合久久久888| 91探花福利精品国产自产在线| 日韩中文字幕国产精品| 国产伦精品免费视频| 久久全国免费视频| 欧美小视频在线观看| 欧美激情视频给我| 亚洲女人被黑人巨大进入al| 国产成人在线亚洲欧美| 欧美日韩国产一区二区三区| 欧美性视频网站| 一区二区欧美日韩视频| 欧美日韩日本国产| 69久久夜色精品国产7777| 久久中国妇女中文字幕| 亚洲日本aⅴ片在线观看香蕉| 8050国产精品久久久久久| 日韩免费在线看| 精品国产91久久久| 96精品视频在线| 成人福利网站在线观看| 国产男女猛烈无遮挡91| 国外视频精品毛片| 亚洲人成在线观| 精品国产欧美一区二区五十路| 久久久精品在线| 538国产精品一区二区在线| 亚洲国产婷婷香蕉久久久久久| 亚洲裸体xxxx| 国产精品啪视频| 午夜美女久久久久爽久久| 成人国产精品一区| 亚洲乱码国产乱码精品精| 欧美极品少妇全裸体| 欧美精品激情视频| 日韩中文字幕免费看| 成人福利网站在线观看| 97avcom| 欧美成人剧情片在线观看| 亚洲精品www久久久久久广东| 亚洲福利视频免费观看| 日韩理论片久久| 亚洲欧美日韩爽爽影院| 国产剧情久久久久久| 亚洲精品电影在线观看| 一区二区三区四区精品| 久久韩剧网电视剧| 亚洲国产精品成人va在线观看| 欧美伊久线香蕉线新在线| 国产精品久久色| 国产一区二区日韩精品欧美精品| 亚洲国产欧美在线成人app| 人妖精品videosex性欧美| 色琪琪综合男人的天堂aⅴ视频| 色综合久久88色综合天天看泰| 7777精品久久久久久| 国产精品黄页免费高清在线观看| 91精品在线观| 日韩av网址在线| 亚洲黄色www网站| 欧美激情免费观看| 亚洲高清久久久久久| 亚洲视频网站在线观看| 欧美视频免费在线观看| 亚洲色图偷窥自拍| 亚洲美女黄色片| 国产精品视频白浆免费视频| 亚洲欧美日韩国产精品| 成人国产精品色哟哟| 国产精品亚洲精品| 九九精品视频在线观看| 亚洲aa中文字幕| 欧美激情videos| 日韩精品久久久久久福利| 亚洲成人教育av| 国产在线观看精品一区二区三区| 国产精品亚发布| 久久亚洲精品一区二区| 日本高清不卡在线| 欧美性感美女h网站在线观看免费| 精品国产1区2区| 国产精品视频久久| 91精品国产电影| 亚洲欧美日韩一区二区三区在线| 人九九综合九九宗合| 国产国语videosex另类| 国产美女久久久| 欧美成人一二三| 久久久久久成人| 欧美激情第三页| 91香蕉亚洲精品| 午夜欧美不卡精品aaaaa| 欧美日韩在线观看视频小说| 亚洲理论在线a中文字幕| 亚洲加勒比久久88色综合| 欧美精品日韩www.p站| 97超碰国产精品女人人人爽| 亚洲丝袜一区在线| 久久久视频精品| 96sao精品视频在线观看| 在线看国产精品| 亚洲iv一区二区三区| 日韩资源在线观看| 亚洲国产日韩欧美综合久久| 欧美激情按摩在线| 国产亚洲视频在线| 欧美精品videosex牲欧美| 成人黄色av免费在线观看| 亚洲第一国产精品| 国产日韩在线观看av| 疯狂欧美牲乱大交777| 最近中文字幕2019免费| 欧美最猛性xxxxx免费| 91精品国产乱码久久久久久久久| 久久精品99久久香蕉国产色戒| 精品国产鲁一鲁一区二区张丽| 久久精品成人欧美大片| 热久久这里只有精品| 久久av在线看| 久久综合网hezyo| 久久视频在线免费观看| 高清视频欧美一级| 91九色蝌蚪国产| 久久久亚洲天堂| 中日韩美女免费视频网站在线观看| 亚洲尤物视频网| 国产成人短视频| 精品视频在线观看日韩| 国产亚洲精品美女| 日韩欧美亚洲一二三区| 亚洲高清福利视频| 国产精品久久久久久一区二区| 国产精品高潮呻吟久久av无限| 91精品国产777在线观看| 久久视频在线播放| 久久久久久18| 国产视频亚洲精品| 欧美一区深夜视频| 国产精品xxx视频| 久久久久国产精品一区| 日韩久久午夜影院| 欧洲成人午夜免费大片| 国产日韩欧美一二三区| 欧美日韩亚洲天堂| 日韩美女免费视频| 亚洲欧美日韩一区在线| 欧美电影免费观看大全| 精品久久中文字幕久久av| 日韩电影大片中文字幕| 91久热免费在线视频| 亚洲午夜久久久影院| 久久99热这里只有精品国产| 成人午夜一级二级三级| 国产日韩亚洲欧美| 欧美激情一区二区久久久| 国产欧美精品日韩精品| 亚洲精品福利免费在线观看| 欧美日韩成人精品| 92看片淫黄大片欧美看国产片|