0
    private void recordFromTable()
    {
        String firstName = Environment.UserName.Split('.')[0];
        String lastName = Environment.UserName.Split('.')[1];
        String query = "SELECT LastUpdate FROM " + "EmployeeContact" + " WHERE EmployeeLastName='" + lastName + "' AND EmployeeFirstName='" + firstName + "'";
        try
        {
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                OleDbCommand command = new OleDbCommand(query, connection);
                connection.Open();
                using (OleDbDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        labelLastUpdated.Text = reader.GetString(0).Trim();
                    }
                }
            }
        } catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

抛出的异常是行/列不存在数据。

我打开 Access 数据库并运行相同的查询(我的检查员在调试时显示),然后从数据库中返回一行。

Access 中的所有字段都是“短文本”

4

2 回答 2

1

如果您确定数据存在,在我看来,您的 firstName 或 lastName 变量可能没有被分配您认为它们是或希望它们的值。

于 2016-07-21T17:49:58.050 回答
1

很可能没有满足WHERE指定条件的记录,因此存在上述异常。要验证运行此

SELECT COUNT(*) FROM 
EmployeeContact 
WHERE EmployeeLastName= lastName 
AND EmployeeFirstName=firstName;

您不妨将查询更改为此

String query = "SELECT Nz(LastUpdate, 'NO DATA PRESENT') LastUpdate FROM " + "EmployeeContact" + " WHERE EmployeeLastName='" + lastName + "' AND EmployeeFirstName='" + firstName + "'";
于 2016-07-21T17:46:05.377 回答