WPF C#位置0处没有行
我在处理位置0的无行时遇到问题知道如何解决此问题吗 我的代码:WPF C#位置0处没有行,c#,wpf,C#,Wpf,我在处理位置0的无行时遇到问题知道如何解决此问题吗 我的代码: public void FillAPModify() { sqliteConUserData.connection.Close(); sqliteConUserData.connection.Open(); var _command = sqliteConUserData.connection.CreateCommand(); var query = str
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
}
}
您的修复应该可以工作,但我总是检查以确保数据集也不为null,并使其全部为一个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
};
}
错误在哪里?您尝试将支票放在哪里?(请开始使用参数化SQL,而不是直接将值放入SQL中。)您的修复是正确的。如果只访问最里面的
If
中的行[0]
,则此错误不应再发生。(很明显,其他错误可能是由其他错误引起的,但您还没有告诉我们这些错误。)错误为`string fileNumber=rows[0].ItemArray[0]as string;`表示没有行,例如\u dataTable。行
没有填充数据,查询不能返回任何内容。我不同意这一点。在本例中,\u dataSet
不可能是null
:它被初始化为new dataSet()
,它永远不会返回null
(在C中,没有new
类构造函数可以返回null
),并且它永远不会被重新分配或作为ref参数传递。因此,如果\u数据集
在那一点上确实是null
,那么在某个地方有一个隐藏的bug,该方法应该会失败并出现异常(通知开发人员该bug)然后我就不能得到数据了你有没有想过让方法返回UserDataVar而不是在方法中设置它?如果用户确实没有UserDataProperties,会发生什么?