RT
从数据库中读取一条条数据连续显示到datagridview里面,就像超市售货员刷商品条码时显示的一样。
开发工具:C#语言,Access数据库
我尝试的两种思路
第一种:是做一个中间表,每次给这个中间表添加一行数据,然后再执行dataGridView1.DataSource = DT,没弄出来
第二种思路:
是在数据库中建另一张表,把需要显示在数据,从主表中提取出来插入到这张表中,然后每次datagridview刷新显示这张表
可是这个从主表中复制一条数据到另一张表的动作实现不出来,我的语句是这样写的:
 OleDbConnection con = new OleDbConnection(conStr);
            OleDbCommand com = new OleDbCommand();
            com.CommandText = "insert into tb_sales(Serial,ID,Name,Price,Re) select (Serial,ID,Name,Price,Re) from tb_goods where ID='" + ID + "'";
            com.Connection = con;
请大虾们帮偶看看,我已经搞了两天了,也没弄出来

解决方案 »

  1.   

    1、每条数据就是一个实体Info
    2、datagridview绑定的是一个实体集合Infos
    3、用户添加一条记录,那么先将记录实例化为一个实体Info
       然后Infos.Add(Info);
       datagridview.DataSource=Infos;
    4、把刚那条数据添加到数据库,如果出错弹出信息!
      

  2.   

    就是按照这个做的,OleDbConnection con = new OleDbConnection(conStr);
                OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [tb_goods] where ID='" + ID + "'", con);           
                DataTable dt = new DataTable();
                da.Fill(dt);
                if (dt.Rows.Count != 0)
                {
                    DataRow dr = DT.NewRow();
                    dr = dt.Rows[0];
                    DT.Rows.Add(dr);
                    dataGridView1.DataSource = DT;
                }
    运行报错:该行已经属于另一个表。
      

  3.   

    新手吧!
            DataTable table = new DataTable(); //建议使用强名称数据集,设计时绑定
            string conStr = "??";
            public Form1()
            {
                this.InitializeComponent();
                this.dataGridView1.DataSource = table;//这里可以使用前期绑定(设计时绑定)
            }        private void button1_Click(object sender, EventArgs e)
            {
                using (OleDbConnection con = new OleDbConnection(conStr))
                {
                    using (OleDbCommand com = new OleDbCommand())
                    {
                        com.CommandText = "insert into tb_sales(Serial,ID,Name,Price,Re) select (Serial,ID,Name,Price,Re) from tb_goods where ID='" + ID + "'";
                        com.Connection = con;
                        using(OleDbDataAdapter adp=new OleDbDataAdapter(com))
                        {
                            using (DataTable tablex = new DataTable())
                            {
                                adp.Fill(tablex);
                                table.Merge(tablex); //合并数据表,这是关键
                            }
                        }                }            }
            }