正在尝试将数据从Microsoft Access 2010拉到C#程序

本文关键字:2010拉 Access 程序 Microsoft 数据 | 更新日期: 2023-09-27 18:23:49

我正在尝试构建一个程序,该程序从访问数据库中提取数据。以下是我构建的SQL语句(已在Access中测试并有效):

SELECT Volunteer.LoaneeID, FirstName, LastName, SUM(HoursWorked )
FROM VOLUNTEER 
INNER JOIN PERSON 
    ON Volunteer.LoaneeID = Person.ID 
Group by FirstName, LastName, LoaneeID;

我现在面临的问题是上面的总结。当我运行我的代码时,我得到有一个意外的问题:"HoursWorked"

这是我构建的代码。我确信这是一个愚蠢的错误。谢谢你的帮助!

Private void more15(string sql)
    {
        //string inputLine;
        clsQuery loanee;
        mLoanee.Clear();
        // Read the data from the specified file.
        if (File.Exists(mClientFile) == false)
        {
            ShowMessage(mClientFile + " does not exist. Please open another file.");
            return;
        }
        try
        {
            openDatabaseConnection();
            mDB.Open();
            OleDbCommand cmd;
            OleDbDataReader rdr;
            cmd = new OleDbCommand(sql, mDB);
            rdr = cmd.ExecuteReader();
            while (rdr.Read() == true)
            {
                loanee = new clsQuery(
                          (int)rdr["LoaneeID"],
                          (string)rdr["FirstName"],
                          (string)rdr["LastName"],
                          (int)rdr["HoursWorked"]);
                mLoanee.Add(loanee);
            }
            rdr.Close();
        }
        catch (Exception ex)
        {
            ShowMessage("There was an unexpected problem: " + ex.Message);
        }
        finally
        {
            closeDatabaseConnection();
        }
    }

正在尝试将数据从Microsoft Access 2010拉到C#程序

您没有为sum(HoursWorked)提供别名。

更改您的查询如下:

SELECT Volunteer.LoaneeID, FirstName, LastName, SUM(HoursWorked ) as HoursWorked 
FROM VOLUNTEER 
INNER JOIN PERSON 
ON Volunteer.LoaneeID = Person.ID 
Group by FirstName, LastName, LoaneeID;