0

我在处理位置 0 处没有行时遇到了麻烦,知道如何解决这个问题吗?

在此处输入图像描述

我的代码:

public void FillAPModify()
    {
        sqliteConUserData.connection.Close();
        sqliteConUserData.connection.Open();

        var _command = sqliteConUserData.connection.CreateCommand();
        var query = string.Format("SELECT * FROM tblTracking Where FileNumber = '" + StaticModel.clickNumValue + "' COLLATE NOCASE");
        string commandText = query;

        var _dataAdapter = new SQLiteDataAdapter(commandText, sqliteConUserData.connection);

        DataSet _dataSet = new DataSet();
        DataTable _dataTable = new DataTable();

        _dataSet.Reset();
        _dataAdapter.Fill(_dataSet);

        _dataTable = _dataSet.Tables[0];
        var rows = _dataTable.Rows;

        string fileNumber = rows[0].ItemArray[0] as string;  \\error
        var shiftDate = rows[0].ItemArray[1];
        var timeCreated = rows[0].ItemArray[2];
        string remarks = rows[0].ItemArray[3] as string;

        UserDataVar = new UserDataProperties
        {
            FileNumber = fileNumber,
            ShiftDate = shiftDate.ToString(),
            TimeCreated = timeCreated.ToString(),
            Remarks = remarks
        };

        sqliteConUserData.connection.Close();
    }

我试过这个但没有工作:

     if (_dataSet.Tables.Count > 0)
        {
            if (_dataSet.Tables[0].Rows.Count > 0)
            {
               \\my stuff
            }
        }
4

1 回答 1

0

您的修复应该有效,但我总是检查以确保数据集也不为空,并将其全部设为一个 if 语句。

if (_dataSet!= null && _dataSet.Tables.Count > 0 && dataSet.Tables[0].Rows.Count > 0)
{
    _dataTable = _dataSet.Tables[0];
    var rows = _dataTable.Rows;

    string fileNumber = rows[0].ItemArray[0] as string;  \\error
    var shiftDate = rows[0].ItemArray[1];
    var timeCreated = rows[0].ItemArray[2];
    string remarks = rows[0].ItemArray[3] as string;

    UserDataVar = new UserDataProperties
    {
        FileNumber = fileNumber,
        ShiftDate = shiftDate.ToString(),
        TimeCreated = timeCreated.ToString(),
        Remarks = remarks
    };
}
于 2013-05-17T17:54:22.727 回答