您的位置首页百科知识

C#查询出来的结果放到datagridview指定的列中

C#查询出来的结果放到datagridview指定的列中

的有关信息介绍如下:

C#查询出来的结果放到datagridview指定的列中

在C#winform开发过程中,我们需要把数据库中的资料显示到datagridview中,并且把这些抓取都得数据做为基本数据进行进一步的处理,也就是在datagridview中加入新的栏位,下面,我们就来实现这个功能。

在vs的form页面上添加一个datagridview控件,这里把背景颜色设为白色。

手动设datagridview各个列的名称,按自己的需要去手动添加,这里不要选择从数据库获取资料。

编写查询语句,我这里是把SQL写在了一个show_date函数中:

private void show_data(DataGridView DG)

{

SqlCommand cmd = new SqlCommand("select ship_no,c_name,ship_date,p_no,p_name,p_spc1,p_qty,s_price,add_price,p_kg from tship where ship_no='" + textBox1.Text + "'", login.share_cls.conn);

SqlDataAdapter dpt = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

//DataTable dt = new DataTable();

dpt.Fill(ds);

DataTable dtb = ds.Tables;

//DataGridViewTextBoxColumn mg = new DataGridViewTextBoxColumn();

//DG.Columns.Add(mg);

DG.DataSource = dtb;

this.dataGridView1.AutoGenerateColumns = false;

this.dataGridView1.Columns["Column1"].DataPropertyName = dtb.Columns["ship_no"].ToString();

this.dataGridView1.Columns["Column2"].DataPropertyName = dtb.Columns["c_name"].ToString();

this.dataGridView1.Columns["Column3"].DataPropertyName = dtb.Columns["ship_date"].ToString();

this.dataGridView1.Columns["Column4"].DataPropertyName = dtb.Columns["p_no"].ToString();

this.dataGridView1.Columns["Column5"].DataPropertyName = dtb.Columns["p_name"].ToString();

this.dataGridView1.Columns["Column6"].DataPropertyName = dtb.Columns["p_spc1"].ToString();

this.dataGridView1.Columns["Column7"].DataPropertyName = dtb.Columns["s_price"].ToString();

this.dataGridView1.Columns["Column8"].DataPropertyName = dtb.Columns["add_price"].ToString();

this.dataGridView1.Columns["Column9"].DataPropertyName = dtb.Columns["p_kg"].ToString();

}

运行查看结果,发现功能是实现了,但是结果分前后两次显示了,这个不是我们想要的结果。

通过代码关闭多余的部分,也就是让其不显示:

this.dataGridView1.Columns["ship_no"].Visible = false;

this.dataGridView1.Columns["c_name"].Visible = false;

this.dataGridView1.Columns["ship_date"].Visible = false;

this.dataGridView1.Columns["p_no"].Visible = false;

this.dataGridView1.Columns["p_name"].Visible = false;

this.dataGridView1.Columns["p_spc1"].Visible = false;

this.dataGridView1.Columns["p_qty"].Visible = false;

this.dataGridView1.Columns["s_price"].Visible = false;

this.dataGridView1.Columns["add_price"].Visible = false;

this.dataGridView1.Columns["p_kg"].Visible = false;

再次运行,功能完全实现:数据库查询到的值显示到datagridview的对应位置;重复显示的项目被关闭,不再显示。