使用Oledbconnection时的compliation错误

时间:2015-12-29 12:18:45

标签: c# asp.net

我在这里使用OleDbConnection连接字符串,但我在第

行收到错误
if (conn.State == ConnectionState.Closed)
  

CS0019时出错:运算符'=='无法应用于'System.Data.ConnectionState'和'ConnectionState'类型的操作数

这是我的代码

protected void btnSave_Click(object sender, EventArgs e)
{
    DataTable dtExcel = new DataTable();
    dtExcel.Clear();
    string StrCount = String.Empty;
    string connString = "";
    HttpPostedFile File = FileUpload1.PostedFile;
    string strFileType = Path.GetExtension(FileUpload1.FileName).ToLower();
    string path = FileUpload1.PostedFile.FileName;
    string Filename = path.Substring(path.LastIndexOf("\\") + 1, path.Length - path.LastIndexOf("\\") - 1);
    path = Server.MapPath(@"~/Excels/" + "/" + Filename.ToString());

    File.SaveAs(path);
    if (strFileType.Trim() == ".xls")
    {
        connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
    }
    else if (strFileType.Trim() == ".xlsx")
    {
        connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
    }
    string query = "SELECT * FROM [Sheet 1$]";
    OleDbConnection conn = new OleDbConnection(connString);
    conn.Close();
    if (conn.State == ConnectionState.Closed)
        conn.Open();
    OleDbCommand cmd = new OleDbCommand(query, conn);
    OleDbDataAdapter daExcel = new OleDbDataAdapter(cmd);

    daExcel.Fill(dtExcel);
    conn.Close();}

我不知道为什么?

我尝试了其他链接的解决方案,但没有帮助

2 个答案:

答案 0 :(得分:4)

在我看来,你有一个模棱两可的类或属性名称。 ConnectionState似乎有两个含义。

尝试使用其完整命名空间为ConnectionState添加前缀:

if (conn.State == System.Data.ConnectionState.Closed)

答案 1 :(得分:1)

在阅读了对Patrick的回答后,我发现其他地方遗失了

if (strFileType.Trim() == ".xls")
    {
        connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
    }
    else if (strFileType.Trim() == ".xlsx")
    {
        connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
    }

可能connString留空,因为strFileType不是.xls.or .xlsx。