【发布时间】:2017-05-20 18:29:58
【问题描述】:
我有两种方法可以在单击按钮后运行,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 中,或者只是循环并打印每个列索引和字段名称...
标签: c# sql datagridview