如何将我的数据集单元格分配给具有我添加的coulmns的相应datagridview单元格?

时间:2018-04-15 11:16:06

标签: c# sql-server datagridview

我的Windows窗体中有datagridview,我添加了5列。

Item Code | Description | Quantity | Rate | Item Total

这些是我在数据网格视图中的列标题。

我正在使用以下过程从数据库检索数据到数据集。

create proc [dbo].[get_an_invoice_details]
    @inv_no int
as
    select 
        inv_item_code, inv_item_desc, inv_item_qty, inv_item_rate, 
        (inv_item_qty * inv_item_rate) item_total
    from 
        invoice 
    where 
        inv_no = @inv_no;
GO

现在我想在名为Item Code的数据gridview列中显示此项代码。分别与其他列相同。但是当我将数据集变量作为数据源时,它将不会显示出来。数据正在显示。但不是在这个专栏中。生成5个新列,这些列在网格视图中为空白。请看屏幕截图。我将自动生成列属性设置为false。但后来没有任何表现。

这是检索按钮的代码:

private void btn_retrieve_Click(object sender, EventArgs e)
{
    dtgrdvw_items.AutoGenerateColumns = false;
    string sql = "get_an_invoice_details @inv_No=" + Convert.ToInt32(txt_inv_no.Text) + ";";

    SqlDataAdapter da = new SqlDataAdapter(sql, con);
    DataSet ds = new DataSet();

    con.Open();
    da.Fill(ds, "invoice");
    con.Close();

    dtgrdvw_items.DataSource = ds;
    dtgrdvw_items.DataMember = "invoice";
}

检索后的应用程序截图

enter image description here

2 个答案:

答案 0 :(得分:0)

DataPropertyName添加DataGridView,如下面的代码所示。你应该好。

 private void btn_retrieve_Click(object sender, EventArgs e)
        {
            dtgrdvw_items.AutoGenerateColumns = false;
            dtgrdvw_items.Columns[0].DataPropertyName = "inv_item_code";
            dtgrdvw_items.Columns[1].DataPropertyName = "inv_item_desc";
            dtgrdvw_items.Columns[2].DataPropertyName = "inv_item_qty"; 
            dtgrdvw_items.Columns[3].DataPropertyName = "inv_item_rate"; 
            dtgrdvw_items.Columns[4].DataPropertyName = "inv_item_total";
            string sql = "get_an_invoice_details @inv_No=" + 
            Convert.ToInt32(txt_inv_no.Text) + ";";
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            con.Open();
            da.Fill(ds, "invoice");
            con.Close();
            dtgrdvw_items.DataSource = ds;
            dtgrdvw_items.DataMember = "invoice";

        }

答案 1 :(得分:0)

dtgrdvw_items.Columns [0] .HeaderText =" Item Code";