我执行一个insert后马上执行一个select,发觉数据还没加进去,如果等1,2秒再select的话数据就有了。那我应该什么时候再select呢?不可能每次都加个定时器来搞吧,多麻烦?

解决方案 »

  1.   

    首先 添加商品:
            private void addNewProduct()
            {
                string select = "select Max(ProductID) from Products";
                product.ProID = Convert.ToInt32(DataAccess.Narnu.GetObjectByOleDbString(select)) + 1;
                product.ProName = "新建商品";
                product.CategoryID = (int)Narnu.GetCategoryID(this.listBox_bigCat.Text.ToString().Trim());
                product.DetailCategoryID = (int)Narnu.GetDetailCategoryID(this.listBox_smallCat.Text.ToString().Trim(), product.CategoryID.ToString());
                product.SupplierID = 1002;
                product.UnitCost = 0;
                product.UnitPrice = 0;
                product.Units = 1000;
                product.Description = " ";
                product.CreateTime = DateTime.Now.ToString();
                //product. = this.tb_gg.Text.ToString().Trim();
                try
                {
                    product.InsertProduct();
                    stateBarMsg("产品添加成功!");
                }
                catch
                {
                    stateBarMsg("添加新产品出现错误!");
                }
                ProductsList();        }
            private void ProductsList()//罗列所有商品
            {
                //string categoryName = listBox_bigCat.Text.ToString().Trim();
                //string select = "select CategoryID from Categories where CategoryName='" + categoryName + "'";
                //int categoryid = Convert.ToInt32(Narnu.GetObjectByOleDbString(select));
                int categoryid = (int)Narnu.GetCategoryID(this.listBox_bigCat.Text.ToString().Trim());            //string detailName = listBox_smallCat.Text.ToString().Trim();
                //string detailSelect = "select DetailCategoryID from DetailCategorys where CategoryID=" + categoryid.ToString() + " and Name='" + detailName + "'";
                //int detailCategoryid = Convert.ToInt32(Narnu.GetObjectByOleDbString(detailSelect));
                int detailCategoryid = (int)Narnu.GetDetailCategoryID(this.listBox_smallCat.Text.ToString().Trim(), categoryid.ToString());            string selectProducts = "select ProductName,ProductID from Products where DetailCategoryID=" + detailCategoryid.ToString() + "";
                DataSet DS = Narnu.GetDataSetByOleDbString(selectProducts);
                listBox_products.Items.Clear();
                for (int i = 0; i < DS.Tables[0].Rows.Count; i++)
                {
                    listBox_products.Items.Add(DS.Tables[0].Rows[i][0]);
                }
            }下面是商品类代码:
            public void InsertProduct()
            {
                string select = "insert into Products (ProductID,ProductName,CategoryID,SupplierID," +
                    "UnitCost,UnitPrice,Units,DisContinued,Description,Fomart,DetailCategoryID,CreateTime) values (" + proID.ToString() + ",'" +
                    this.proName + "'," + this.categoryID.ToString() + "," + this.supplierID.ToString() + "," + this.unitCost.ToString() +
                    "," + this.unitPrice.ToString() + "," + this.units.ToString() + "," + this.disContinued.ToString() + ",'" + this.description.Replace("'","''") + "','" +
                    this.fomat + "'," + this.detailCategoryID.ToString() + ",'" + this.createTime + "')";
                DataAccess.Narnu.DoOleDbString(select);
            }
      

  2.   

    这个ProductsList();
    罗列的商品始终没有新增加的,不知道改杂办?