如何使用 OLEDB 连接上传的 excel 文件?
How connect the uploaded excel file using OLEDB?
我只想检查是否可以连接到我最近上传的 Excel 文件,这里我使用的是 OLE DB。我想检查我是否可以正确连接到该文件并 return 一条消息。但是,当我尝试连接到 OLE DB 时,它会再次上传相同的文件。你能帮我解决这个问题吗
我正在使用 C# MVC 和 OLE DB
在检查其是否为 excel 文件之前,我已经上传了该文件。
调用业务和保存文件的控制器
if (_dataExchangeBusiness.IsExcelFile(fname)==true)
{
file.SaveAs(fname);
bool connectioncheck;
connectioncheck = _dataExchangeBusiness.CheckConnection(fname);
return Json(new { Result = "true", Message = "" });
}
else
{
return Json(new { Result = "false", Message = "" });
}
这是检查 excel 文件的业务
public bool IsExcelFile(string fname)
{
string extension = Path.GetExtension(fname);
try
{
if(extension== ".xls" || extension== ".xlsx")
{
return true;
}
else
{
return false;
}
}
catch(Exception ex)
{
throw ex;
}
}
这里是检查业务中的OLE DB连接检查
public bool CheckConnection(string fname)
{
string extension = Path.GetExtension(fname);
try
{
string connstring = string.Empty;
switch (extension)
{
case ".xls":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString, fname);
break;
case ".xlsx":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel07+ConString"].ConnectionString, fname);
break;
}
OleDbConnection connExcel = new OleDbConnection(connstring);
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;
try
{
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
// cmdExcel.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
connExcel.Close();
}
}
catch(Exception ex)
{
throw ex;
}
return true;
}
这里我期待的结果是true还是false,就是能否建立连接
public bool CheckConnection(string fname)
{
string extension = Path.GetExtension(fname);
try
{
string connstring = string.Empty;
switch (extension)
{
case ".xls":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString, fname);
break;
case ".xlsx":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel07+ConString"].ConnectionString, fname);
break;
}
OleDbConnection connExcel = new OleDbConnection(connstring);
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;
//bool canconnect = false;
try
{
connExcel.Open();
return true;
//DataTable dtExcelSchema;
//dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
// cmdExcel.ExecuteNonQuery();
}
catch
{
return false;
}
finally
{
connExcel.Close();
}
}
catch(Exception ex)
{
throw ex;
}
}
只要 return true after connExcel.Open();
将得到 true if can connect else return false
我只想检查是否可以连接到我最近上传的 Excel 文件,这里我使用的是 OLE DB。我想检查我是否可以正确连接到该文件并 return 一条消息。但是,当我尝试连接到 OLE DB 时,它会再次上传相同的文件。你能帮我解决这个问题吗
我正在使用 C# MVC 和 OLE DB 在检查其是否为 excel 文件之前,我已经上传了该文件。
调用业务和保存文件的控制器
if (_dataExchangeBusiness.IsExcelFile(fname)==true)
{
file.SaveAs(fname);
bool connectioncheck;
connectioncheck = _dataExchangeBusiness.CheckConnection(fname);
return Json(new { Result = "true", Message = "" });
}
else
{
return Json(new { Result = "false", Message = "" });
}
这是检查 excel 文件的业务
public bool IsExcelFile(string fname)
{
string extension = Path.GetExtension(fname);
try
{
if(extension== ".xls" || extension== ".xlsx")
{
return true;
}
else
{
return false;
}
}
catch(Exception ex)
{
throw ex;
}
}
这里是检查业务中的OLE DB连接检查
public bool CheckConnection(string fname)
{
string extension = Path.GetExtension(fname);
try
{
string connstring = string.Empty;
switch (extension)
{
case ".xls":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString, fname);
break;
case ".xlsx":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel07+ConString"].ConnectionString, fname);
break;
}
OleDbConnection connExcel = new OleDbConnection(connstring);
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;
try
{
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
// cmdExcel.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
connExcel.Close();
}
}
catch(Exception ex)
{
throw ex;
}
return true;
}
这里我期待的结果是true还是false,就是能否建立连接
public bool CheckConnection(string fname)
{
string extension = Path.GetExtension(fname);
try
{
string connstring = string.Empty;
switch (extension)
{
case ".xls":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString, fname);
break;
case ".xlsx":
connstring = string.Format(ConfigurationManager.ConnectionStrings["Excel07+ConString"].ConnectionString, fname);
break;
}
OleDbConnection connExcel = new OleDbConnection(connstring);
OleDbCommand cmdExcel = new OleDbCommand();
cmdExcel.Connection = connExcel;
//bool canconnect = false;
try
{
connExcel.Open();
return true;
//DataTable dtExcelSchema;
//dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
// cmdExcel.ExecuteNonQuery();
}
catch
{
return false;
}
finally
{
connExcel.Close();
}
}
catch(Exception ex)
{
throw ex;
}
}
只要 return true after connExcel.Open();
将得到 true if can connect else return false