C#和SQL System.ArgumentOutOfRangeException

C#和SQL System.ArgumentOutOfRangeException,c#,C#,我正在尝试创建一个应用程序,该应用程序使用sql连接到数据库,我正在尝试创建一个dataview,它查看当前选定的dataview,然后从另一个表中提取信息。我已经遵循了一些指南,并且已经非常接近了,但我目前遇到了以下错误: “System.ArgumentOutOfRangeException”类型的未处理异常 在mscorlib.dll中发生其他信息:索引已超出 范围必须为非负数且小于集合的大小 任何帮助都将不胜感激。(Visual Studio在下面第一行末尾显示错误) 您是否检查了Sel

我正在尝试创建一个应用程序,该应用程序使用sql连接到数据库,我正在尝试创建一个dataview,它查看当前选定的dataview,然后从另一个表中提取信息。我已经遵循了一些指南,并且已经非常接近了,但我目前遇到了以下错误:

“System.ArgumentOutOfRangeException”类型的未处理异常 在mscorlib.dll中发生其他信息:索引已超出 范围必须为非负数且小于集合的大小

任何帮助都将不胜感激。(Visual Studio在下面第一行末尾显示错误)


您是否检查了
SelectedRows
单元格
是否具有选定值?您可以使用调试器查看值是什么

此外:

您正在将PersonID定义为字符串。它是数据库中的字符串值吗?如果是,您是否尝试过:

sqlDataAdapter2.SelectCommand.CommandText = "SELECT * FROM Personal_Emails WHERE PersonID='" + PersonID + "'";

您是否检查了
SelectedRows
单元格
是否具有选定值?您可以使用调试器查看值是什么

此外:

您正在将PersonID定义为字符串。它是数据库中的字符串值吗?如果是,您是否尝试过:

sqlDataAdapter2.SelectCommand.CommandText = "SELECT * FROM Personal_Emails WHERE PersonID='" + PersonID + "'";

在使用之前,您需要检查是否存在某些内容

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

在使用之前,您需要检查是否存在某些内容

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
验证此行是否返回某个值null

示例:如果网格没有选定的行,它将返回错误或空值

验证此行是否返回某个值null


示例:如果网格没有选定的行,它将返回错误或空值。

您有选定的行吗?它们有单元格吗?欢迎使用堆栈溢出!看起来
SelectedRows
Cells
有0个元素。您希望从
Grid1.SelectedRows[0].Cells[0].value.ToString()得到什么值?Grid1有任何行吗?我没有选择任何行,每当我尝试启动程序时都会出现异常。它有行是。如果您没有选择任何行,则
SelectedRows
将为空,因此
SelectedRows[0]
将显示该错误。您是否有任何选定行,它们是否有单元格?欢迎使用堆栈溢出!看起来
SelectedRows
Cells
有0个元素。您希望从
Grid1.SelectedRows[0].Cells[0].value.ToString()得到什么值?Grid1有任何行吗?我没有选择任何行,每当我尝试启动程序时都会出现异常。它有行“是”。如果未选择任何内容,则
SelectedRows
将为空,因此
SelectedRows[0]
将显示该错误。