2
ボタンをクリックした後に実行する2つの方法、bgEqptRec()
およびreceiveHeader()
があります。 bgEqptRec()
には、列ヘッダのタイトルを設定したrecieveHeader()
が含まれています。しかし、インデックスが範囲外だったために設定できません。 SQL Serverから適切なインデックス番号を使用していることは間違いありません。ここでは、コードです:インデックスが範囲外であるために列ヘッダーテキストを設定できません
private void btnSearch_Click(object sender, EventArgs e)
{
bgEqptRec();
}
private void bgEqptRec()
{
receiveHeader();
gvSearch.DataSource = null;
using (var connect = connection.getConnection())
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM receive WHERE rec_stat='IN' AND rec_date BETWEEN '" + dtpFrom.Text + "' AND '" + dtpTo.Text + "'"))
{
cmd.Connection = connect;
cmd.CommandType = CommandType.Text;
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
using (DataTable dt = new DataTable())
{
da.Fill(dt);
gvSearch.DataSource = dt;
}
}
}
}
}
private void receiveHeader()
{
gvSearch.Columns[0].HeaderText = "Supplier";
gvSearch.Columns[1].HeaderText = "Invoice";
gvSearch.Columns[2].HeaderText = "Brand";
gvSearch.Columns[3].HeaderText = "Model";
gvSearch.Columns[4].HeaderText = "Equipment";
gvSearch.Columns[5].HeaderText = "Serial No.";
gvSearch.Columns[6].HeaderText = "Price";
gvSearch.Columns[7].HeaderText = "PO No.";
gvSearch.Columns[8].HeaderText = "Release Date";
gvSearch.Columns[9].HeaderText = "Release By";
gvSearch.Columns[10].HeaderText = "Status";
}
VSによって与えられたエラーは、「インデックスが範囲外でした負でないコレクションのサイズよりも小さくなければなりません。」でした。
この行でエラーを取得している: 'gvSearch.Columns [0]' –
は列が利用可能であるか確認するために、簡単なテストを実行します - いずれかのデバッグと時計にgvSearch.Columns、またはループして、各columnnインデックスとフィールド名を印刷するだけです... – Rex