连接数据库

? OleDbConnection conn = null;
DataSet ds = new DataSet();
try
{
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'");
conn.Open();
DataTable dtSheets = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataRow drSheet in dtSheets.Rows)
{
string strSheetName = drSheet[2].ToString().Trim();
if (strSheetName.EndsWith("$") == false
&& strSheetName.EndsWith("$'") == false)
{
continue;
}

OleDbCommand cmd = new OleDbCommand(string.Format("select * from [{0}]", strSheetName), conn);
OleDbDataAdapter ExcelDA = new OleDbDataAdapter();
ExcelDA.SelectCommand = cmd;
DataTable dtFromExcel = new DataTable();
ExcelDA.FillSchema(dtFromExcel, SchemaType.Mapped);
ExcelDA.Fill(dtFromExcel);
//将Sheetname中的$,'删除
dtFromExcel.TableName = ProcessSheetName(dtFromExcel.TableName);
ds.Tables.Add(dtFromExcel);
}
}
finally
{
if (conn != null
&& conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
return ds;
}



////////文件的导入:
private void ParseExcel()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Excel Files(*.xls)|*.xls";

if (ofd.ShowDialog() == DialogResult.Cancel)
{
return;
}

this.Refresh();
this.Cursor = Cursors.WaitCursor;
string strFile = ofd.FileName;
this.tbxGroupFile.Text = strFile;
string erMsg = "";
// 将Excel转化成Dataset
dsFromExcel = Excel2DataSet(strFile);

// 检查Excel的Sheetname是否合格
ArrayList erTabList = new ArrayList();

if (!CheckTableName(dsFromExcel, out erTabList))
{
//string strerrMsg = "";
for (int i = 0; i < erTabList.Count; i++)
{
erMsg += (erMsg.Length > 0 ? "/" : "") + erTabList[i].ToString();
}
erMsg = string.Format("Can't find Sheet:{0}.Please check it!", erMsg);
MsgBox.ShowErr(erMsg);
return;

}

strSAPTransType = dsFromExcel.Tables[0].TableName;

if (strSAPTransType == GI_SHEET_NAME)
{
DataRow[] drsGIEmpty = dsFromEx

cel.Tables[strSAPTransType].Select("WorkOrderNo IS NULL and ReceivenoticeNo Is NULL and PartNo IS NULL and SapTransNo IS NULL");

foreach (DataRow dr in drsGIEmpty)
{
dsFromExcel.Tables[strSAPTransType].Rows.Remove(dr);
}
dsFromExcel.Tables[strSAPTransType].AcceptChanges();
if (!CheckExcelGR(dsFromExcel.Tables[GI_SHEET_NAME], out erMsg))
{
MsgBox.ShowErr(erMsg);
return;
}
}
else if(strSAPTransType == GR_SHEET_NAME)
{
DataRow[] drsGREmpty = dsFromExcel.Tables[strSAPTransType].Select("ReceivenoticeNo IS NULL and PartNo IS NULL and SAPTransNo IS NULL and SAPOutNo IS NULL and SAPOutMsg IS NULL");

foreach (DataRow dr in drsGREmpty)
{
dsFromExcel.Tables[strSAPTransType].Rows.Remove(dr);
}
dsFromExcel.Tables[strSAPTransType].AcceptChanges();
if (!CheckExcelGR(dsFromExcel.Tables[GR_SHEET_NAME], out erMsg))
{
MsgBox.ShowErr(erMsg);
return;
}
}
BindingToDataGridView(dsFromExcel);
this.btnSave.Enabled = true;

}

////////////////////////////保存文件
private void SaveData(DataSet dsSAPTransInfo)
{
if (this.dgvSAPTransInfo.RowCount == 0 )
{
string strErrMsg = string.Format("Can not any records!");
MsgBox.ShowErr(strErrMsg);
return;
}
string strXML = https://www.360docs.net/doc/071544411.html,mon.ConvertDataTableToXML(dsSAPTransInfo.Tables[strSAPTransType], "XML").ToString();

NameValueCollection nvc = GetNVC();
nvc[ACTION_NAME] = "SaveSAPTransRecordInfo";
nvc.Add("strXML", strXML.ToString());
nvc.Add("strSAPTransType", strSAPTransType.Trim());
nvc.Add("strLastEditBy", eFox.MES.Windows.Forms.HostHelper.GetEmpID(this));
nvc.Add("strActionType", cmbActionType.Text.ToString().Trim() );

Wavelet.Write(nvc);
MsgBox.ShowInfo("Maintain SAP transport Information successfully!");
}

相关文档
最新文档