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);

C# and SQL System.ArgumentOutOfRangeException

您需要在使用它之前检查它是否存在。

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 + "'";
相关文章:
  • 没有找到相关文章