我很難過,我試圖從數據庫中填充5個文本框,並非所有5個都會有數據。用ExecuteReader循環遍歷行
實施例:
ID | ItemID | QType
1 | 10 | 2盒
2 | 10 | 6盒
3 | 11 | 1案例
在這個例子中,它將填充QuantityType1TxtBox與2 Boxes和QuantityType2TxtBox與6 Boxes,而其他三個文本框留空。
當我嘗試運行此代碼時,出現以下錯誤:索引超出了數組的範圍。
此錯誤發生在此行上:QuantityType2TxtBox.Text = rdr.GetString(1);
SqlCommand cmd = new SqlCommand(@"SELECT QType FROM InventoryQType
WHERE ItemID = '" + itemID + "'", conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
QuantityType1TxtBox.Text = rdr.GetString(0);
QuantityType2TxtBox.Text = rdr.GetString(1);
QuantityType3TxtBox.Text = rdr.GetString(2);
QuantityType4TxtBox.Text = rdr.GetString(3);
QuantityType5TxtBox.Text = rdr.GetString(4);
}
rdr.Close();
您的數據中只有一個字段,所以GetString(0)之後的任何內容都不應起作用。 – LarsTech
您是否期望獲得5條記錄? –
另外,總是使用參數來避免sql注入。您的ItemID應該使用您傳遞值的參數。 – LarsTech