谁能优化一下下面的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SysSap.SAP.CONN;
using System.Xml.Linq;
using Model.baseCls.db;
namespace SysSap.SAP.Master
{
public class MasterOITM
{
public static string OITM(string ItemCode)
{
try
{
//查询物料主数据的信息
SAPbobsCOM.Items oItems, iItems;
oItems = (SAPbobsCOM.Items)DIConn.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems);
iItems = (SAPbobsCOM.Items)DIConn.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems);
int lRetCode;
DIConn.oCompany.XmlExportType = SAPbobsCOM.BoXmlExportTypes.xet_ExportImportMode;
SqlHelper obj_SqlHelper = new SqlHelper();
string estrSql = "Select ItemCode From SAP_OITM A LEFT JOIN SAP_OITB B ON A.ItmsGrpCod=B.Grpid Where ItemCode ='" + ItemCode + "'";
string eStr = obj_SqlHelper.runCol(estrSql);
if (eStr != "")
{
System.Data.DataTable Items, ItemsuserField, Items_Price, ItemWare, ItemWareuserField, ItemCardCode;//定义数据表
SAPbobsCOM.Recordset oRecordset;
oRecordset = (SAPbobsCOM.Recordset)DIConn.oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
string userField = @"Select A.name From Syscolumns A,Sysobjects B
Where B.Name= 'SAP_OITM' And A.id=B.id And LEFT(a.name,2)='U_'";
ItemsuserField = obj_SqlHelper.retDataTable(userField);
userField = "";
for (int m = 0; m < ItemsuserField.Rows.Count; m++)
{
userField = userField + ItemsuserField.Rows[m][0].ToString() + ",";
}
if (userField != "")
{
userField = userField.Substring(0, userField.Length - 1);
}
string strSql = @"Select ItemCode,ItemName,B.DOCENTRY[ItemsGroupCode],-1[CustomsGroupCode],CODEBARS[BarCode],
FRGNNAME[ForeignName],ItemType,ISSUEMTHD[IssueMethod],MANBTCHNUM[ManageBatchNumbers],ManSerNum[ManageSerialNumbers],
ISNULL(MNGMETHOD,'R')[SRIAndBatchManageMethod],VALIDFOR[Valid],FROZENFOR[Frozen],USERTEXT[User_Text],CARDCODE[Mainsupplier],
BUYUNITMSR[PurchaseUnit],SALUNITMSR[SalesUnit],NUMINBUY[PurchaseQtyPerPackUnit],PLANINGSYS[PlanningSystem],
PRCRMNTMTD[ProcurementMethod],ORDRMULTI[OrderMultiple],LeadTime,MINORDRQTY[MinOrderQuantity],INVNTRYUOM[InventoryUOM],
EVALSYSTEM[CostAccountingMethod],PicturName[Picture],DfltWH[DefaultWarehouse],
CASE InvntItem when '0' then 'N' ELSE 'Y' END AS InventoryItem,CASE SellItem when '0' then 'N' ELSE 'Y' END AS SalesItem,
CASE PrchseItem when '0' then 'N' ELSE 'Y' END AS PurchaseItem,CASE AssetItem when '0' then 'N' ELSE 'Y' END AS AssetItem";
if (userField != "")
{
strSql = strSql + "," + userField;
}
strSql += " From SAP_OITM A LEFT JOIN SAP_OITB B ON A.ItmsGrpCod=B.Grpid Where ItemCode ='" + ItemCode + "'";
//讲查询的信息赋予DataTable
Items = obj_SqlHelper.retDataTable(strSql);
//查询物料主数据对应的价格清单
string lineSql = @"SELECT Docid[PriceList],0.000000[Price] From SAP_OPLN Order By Docid ";
Items_Price = obj_SqlHelper.retDataTable(lineSql);
userField = @"Select A.name From Syscolumns A,Sysobjects B
Where B.Name= 'SAP_OITW' And A.id=B.id And LEFT(a.name,2)='U_'";
ItemWareuserField = obj_SqlHelper.retDataTable(userField);
userField = "";
for (int m = 0; m < ItemWareuserField.Rows.Count; m++)
{
userField = userField + ItemWareuserField.Rows[m][0].ToString() + ",";
}