数据存在,但我的程序显示“行/列不存在数据”。

Posted

技术标签:

【中文标题】数据存在,但我的程序显示“行/列不存在数据”。【英文标题】:Data exists but my program says 'No data exists for the row/column.' 【发布时间】:2016-07-21 17:40:17 【问题描述】:
    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 中的所有字段都是“短文本”

【问题讨论】:

您确定 LastUpdate 列不为空吗? 【参考方案1】:

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

【讨论】:

是的,我有数据,因为我在 Access 中运行了相同的查询并且它有效。但是我从 reader.GetString(0).Trim(); 更改了我的代码。到 reader["columnName"].ToString().Trim() 它开始工作【参考方案2】:

很可能没有满足指定的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 + "'";

【讨论】:

如果没有满足条件的记录,则不会执行 where 循环(以及 COALESCE 与 Access?)

以上是关于数据存在,但我的程序显示“行/列不存在数据”。的主要内容,如果未能解决你的问题,请参考以下文章

选择多列时出现 ExecuteReader 错误“行/列不存在数据”

从 VB.net 连接到 SQL 数据库时,“行/列不存在数据”

Ruby-on-Rails 显示问题 - 2018 年 5 月仅存在一次,但我的应用程序显示了 7 次

我的屏幕保护程序正在停止屏幕暂停,但我不希望它停止

我的列表视图无法显示数据库中的所有元素

获取并显示我的firebase存储中存在的所有文件夹和文件[关闭]