索引0为负值或大于行数.错误c#

本文关键字:错误 大于 索引 | 更新日期: 2023-09-27 17:54:10

我太需要帮助了。

我得到以下异常:

索引0为负值或大于行数错误

我研究了stackoverflow和google,但是我无法修复错误。

我代码:

if (lb_Gmy.SelectedItems.Count > 0)
{
    string gmyquery = "Select * from tblA (nolock) where ParameterID = 2 and Status = 1";
    DataView dataw = new DataView(ReturnTable(gmyquery));
    foreach (string item in lb_Gmy.SelectedItems)
    {
        dataw.RowFilter = "Value = '" + item + "'";
        gmy += dataw[0]["ParamValue"].ToString() + ",";
    }
    gmy = gmy.Substring(0, gmy.Length - 1);
}

但是在这个代码中我没有得到一个错误:

if (lb_Fg.SelectedItems.Count > 0)
{
    string gmyquery = "Select * from tblA (nolock) where ParameterID = 2 and Status = 1";
    DataView dataw = new DataView(ReturnTable(gmyquery));
    foreach (string item in lb_Fg.SelectedItems)
    {
        dataw.RowFilter = "Value = '" + item + "'";
        findingGmy += dataw[0]["ParamValue"].ToString() + ",";
    }
    findingGmy = findingGmy.Substring(0, findingGmy.Length - 1);
}

他们看起来一样。我很困惑。问题在哪里?

索引0为负值或大于行数.错误c#

这意味着DataView, dataw为空(查询不返回任何记录)。所以你必须在访问Value之前检查是否为空。

DataView dataw = new DataView(ReturnTable(gmyquery));
if (dataw!=null && dataw.Count > 0)
{
    // Your code here
}