2016-09-19 1 views
-1

Ich habe dieses Programm, wo ich eine Schaltfläche Basis von Produkten auf meiner Datenbank (ProductTbl) erstellen möchte. Ich fand einen Weg, das zu tun, Hier ist der Code:Wenden Sie jede Art von Updates auf Datenbank sofort C#

public void DynamicButton() //Function for retrieving record and creating a button for each product 
     { 
     string select = "select ProductID,ProductDesc,ProductPrice,ProductPic from ProductTbl" ; 
     sda = new SqlDataAdapter(select,sqlConn); 
     sda.Fill(dataTable); 

     for (int i = 0; i < dataTable.Rows.Count; i++) 
     { 
      ExtendedButton prodBtn = new ExtendedButton(); //with ExtendedButton this time 
      prodBtn._itemName = dataTable.Rows[i][1].ToString();//this asigns the product name to the extended button 
      prodBtn._itemID = Convert.ToInt32(dataTable.Rows[i][0]); 
      prodBtn._myPrice = Convert.ToDecimal(dataTable.Rows[i][2]); 
      prodBtn.BackgroundImageLayout = ImageLayout.Stretch; 
      prodBtn.Click += new EventHandler(OnButtonClick); 
      prodBtn.Height = 100; 
      prodBtn.Width = 100; 
      System.Drawing.Font f1 = SystemFonts.DefaultFont; 
      prodBtn.Font = new System.Drawing.Font(f1.FontFamily,f1.Size,FontStyle.Bold); 
      prodBtn.Text = dataTable.Rows[i][1].ToString(); 
      prodBtn.TextAlign = ContentAlignment.BottomCenter; 
      prodBtn.ForeColor = Color.White; 
      prodBtn.BackgroundImageLayout = ImageLayout.Zoom; 
      toolTip1.Show(prodBtn.Text, prodBtn); 
      byte[] image = (byte[])dataTable.Rows[i][3]; 
      prodBtn.BackgroundImage = imgConverter.byteArrayToImage(image); 
      prodBtn.TextAlign = ContentAlignment.MiddleCenter;    
      flowPanel.Controls.Add(prodBtn); 


     }  
     } 

// Man kann das sehen bei Codeproject

Nun das Problem ist, dass, wenn ich ein Produkt auf dieser Tabelle unter Verwendung der gespeicherten Prozedur hinzufügen. Ich weiß nicht, wie ich Updates mit der Datatabelle synchronisieren kann, die ich mit diesem benutze. Alle Ideen und Vorschläge werden sehr geschätzt. Vielen Dank für die lange Post

+0

Mein Profi vorgeschlagen Asynchronous Task, aber das war zu schwer für mich. Oder vielleicht wäre eine ordnungsgemäße Verwendung von SqlDataAdapter.Update() genug, aber ich weiß nicht genau, wo ich es hinstellen soll. Letzteres ist jetzt meine primäre Option –

+0

Wenn Sie alles richtig anschließen, denke ich, dass Sie in der Lage sein sollten, 'Update' auf Ihrem Adapter zu nennen; In beiden Fällen sollten Sie jedoch denselben Datenadapter und dasselbe Dataset/Dataset verwenden. –

+0

Beachten Sie, dass es viel einfacher ist, wenn Sie den Dataset-Designer verwenden. –

Antwort

0

Sie können ASP.Net Caching mit SqlCacheDependency verwenden. Sehen Sie diese Seite für Details: https://msdn.microsoft.com/en-us/library/ms178604.aspx

+0

Okay, ich werde es versuchen. Ich werde Sie später aktualisieren :) Danke für die Antwort –

+0

Das sieht ein bisschen schwer zu verstehen, so könnte es mein Update eine Weile dauern –

Verwandte Themen