C# and SQL System.ArgumentOutOfRangeException
本文关键字:ArgumentOutOfRangeException System SQL and | 更新日期: 2023-09-27 18:18:31
我试图创建一个使用sql连接到数据库的应用程序,我试图创建一个数据视图,它查看当前选择的数据视图,然后从另一个表中拉回信息。我已经遵循了一些指南,已经相当接近,但我目前得到这个错误:
类型为"System"的未处理异常。ArgumentOutOfRangeException"发生在mscorlib.dll中。附加信息:索引不在的范围内。必须非负且小于集合的大小。
任何帮助都将非常感激。(Visual Studio在下面第一行的末尾显示错误)
string PersonID = Grid1.SelectedRows[0].Cells[0].Value.ToString();
sqlDataAdapter2.SelectCommand.CommandText = "select * from Personal_Emails where PersonID=" + PersonID;
sqlDataAdapter2.Fill(dataSet21.Personal_Emails);
您需要在使用它之前检查它是否存在。
var selectedRow = Grid1.SelectedRows[0];
var cell = selectedRow == null ? false : selectedRow.Cells.Any();
var personID = (cell) ? Grid1.SelectedRows[0].Cells[0].Value.ToString() : "";
if(!string.isNullOrEmpty(personID)
// do query stuff
string PersonID = Grid1.SelectedRows[0].Cells[0].Value.ToString();
验证这一行是否返回值<> null。
示例:如果网格没有选定行,它将返回错误或空值。
您检查过SelectedRows
&Cells
有一个选定的值?您可以使用调试器并查看值是什么。
:
您正在将PersonID定义为字符串。它是数据库中的字符串值吗?如果有,你试过:
sqlDataAdapter2.SelectCommand.CommandText = "SELECT * FROM Personal_Emails WHERE PersonID='" + PersonID + "'";