/// <summary>
/// 根据选择的门店名称查询出门店的订单信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string itemtxt = comboBox1.Text;
//根据门店名称查询门店采购单信息
string sql = string.Format("select CommodityName as 商品名称,OrderQuantity as 采购数量,ReplenishmentQuantity as 补购数量,OrderSum as 总数量 from PurchaseTable where StoreName = '{0}'", itemtxt);
try
{
//打开连接
SqlCommand comm = new SqlCommand(sql, DBHelper.conn);
DBHelper.conn.Open();
}catch(Exception ex)
{
Console.Write(ex.Message);
}
finally
{
DBHelper.conn.Close();
}
SqlDataAdapter da = new SqlDataAdapter(sql, DBHelper.conn);
DataSet ds = new DataSet();
da.Fill(ds);
this.dataGridView1.DataSource = ds.Tables["PurchaseTable"];
//设置单元的列名称
dataGridView1.Columns[0].HeaderText = "商品名称";
dataGridView1.Columns[1].HeaderText = "采购数量";
dataGridView1.Columns[2].HeaderText = "补购数量";
dataGridView1.Columns[3].HeaderText = "总数量";
//设置单元格的宽度
dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
dataGridView1.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
private void button6_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet("Polihua001");
SqlDataAdapter sda = new SqlDataAdapter();
DialogResult result = MessageBox.Show("确定要保存商品的补购数量?", "补购操作", MessageBoxButtons.OKCancel);
if (result == DialogResult.OK)
{
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds, "PurchaseTable");
}
}

运行提示超出索引值?
数据库:

------解决思路----------------------
this.dataGridView1.DataSource = ds.Tables["PurchaseTable"];
-》这句的确会显示 绑定Table到dgv ,不过显示的应该是英文的列名称,lz想换成中文的吧。
需要自定义列了,在columns中手动添加列,修改FileName与HeaderText的值。
------解决思路----------------------
FileName 为 你sql语句的 as 后面的部分。不使用 as 的就是数据表的 列名。
------解决思路----------------------
上面写错了,或者
da.Fill(ds);
this.dataGridView1.DataSource = ds.Tables[0];