[英]C# and SQL System.ArgumentOutOfRangeException
我試圖創建一個使用sql連接到數據庫的應用程序,並且試圖創建一個dataview,它查看當前選定的dataview,然后從另一個表中拉回信息。 我遵循了一些指南,並且已經相當接近了,但是我目前遇到此錯誤:
mscorlib.dll中發生了'System.ArgumentOutOfRangeException'類型的未處理異常。其他信息:索引超出范圍。 必須為非負數並且小於集合的大小。
任何幫助將不勝感激。 (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);
您是否檢查過SelectedRows
& Cells
是否具有選定值? 您可以使用調試器並查看值。
也:
您正在將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
string PersonID = Grid1.SelectedRows[0].Cells[0].Value.ToString();
驗證此行是否返回某些值<> null。
示例:如果網格沒有選定的行,它將返回錯誤或空值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.