I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg vender lige tilbage senere da jeg skal ud og køre nu :o)
Har du forresten opserveret at der ikke bliver tilsendt mails når der er svaret på spm. her på eksperten ? Af en eller anden årsag får jeg ikke længere nogen tilsendt ?
snepnet >> Så tager vi den lige hele vejen igennem. I mit datalag henter jeg alt fra mit produkt katalog og smidder det i et dataset med følgende kode :
Public Shared Function GetProduct() Dim objConn As SqlConnection = DbClass.SqlConnect Dim objComm As New SqlDataAdapter("Select * From tbl_products Order By Product", objConn) Dim objDS As New DataSet objComm.Fill(objDS, "tbl_products") Return objDS End Function
I mit buisnesslag har jeg så en function der smidder datasættet i cache dette gøres med denne :
Public Shared Function getProduct() Dim Source As DataView = CType(HttpContext.Current.Cache("Product"), DataView) If Source Is Nothing Then Source = New DataView(ProductsData.GetProduct().Tables("tbl_products")) HttpContext.Current.Cache("Product") = Source Else Dim intRows As Integer intRows = Source.Count
If intRows <> CInt(ProductsData.GetProductCount()) Then HttpContext.Current.Cache.Remove("Product") Source = New DataView(ProductsData.GetProduct().Tables("tbl_products")) HttpContext.Current.Cache("Product") = Source End If End If Return Source End Function
I mit designlag er jeg så gået lidt i stå med det du viser ovenfor da jeg jo allerede i mit buisnesslag smidder tabellen i cache med dataview hvad skal jeg have med her foruden denne linie i designlaget :
til en start skal du jo nok proppe dit dataset i cache istedet for et view, og du kan så efterfølgende skabe nogle metoder, der returnerer dig et view fra det dataset du så har liggende i din cache. mvh
Ikke nogen speciel grund det var noget jeg fik hjælp til, men du er mere end velkommen til at vise mig hvorledes jeg får dataset i cache istedet for udfra min kode ovenfor
og så tror jeg jeg har fat i noget af det rigtige med følgende :
Dim dv As DataView = New DataView dv.Table = ProductsBiz.getProduct() dv.RowFilter = "getLanguage = 'da'" dv.Sort = "Product DESC"
Men du er velkommen til at kommentere, en anden ting er, er det muligt at benytte mere end en parameter i "RowFilter" lige som man gør med alm. sql "Where id = @Id And Language = @Language" ?
Det var noget jeg læste mig til på MSDN, men der bruger de denne som eks til visning af tekst :
TextBox1.DataBindings.Add("Text", dv, "Product")
Men der får jeg en fejl der siger :
'DataBindings' is not a member of 'System.Web.UI.WebControls.TextBox'.
Med hensyn til min dataview i cache så mener jeg det er fordi jeg ikke kan lave en count på dataset som jeg benytter mig i disse linier for tjekke op på om der er kommet nye records til siden sidste caching, men jeg ikke
Dim intRows As Integer intRows = Source.Count
If intRows <> CInt(ProductsData.GetProductCount()) Then HttpContext.Current.Cache.Remove("Product") Source = New DataView(ProductsData.GetProduct().Tables("tbl_products")) HttpContext.Current.Cache("Product") = Source End If
1) TextBox1.DataBindinds.Add(... er en winforms ting, så derfor får du fejl når du prøver det samme på web-kontroller.
2) du skal ikke regne med at der er 1 til 1 mellem alm. sqlsyntaks, og så det du kan skrive i dit rowfilter - ofte skal du sno dig lidt når du laver filtre. du kan se om der står noget fornuftigt her :
Hvis jeg lige starter med at vise dig den function der laver cache kan du så rette den til så det kommer til at virke med dataset istedet for dataview :
Public Shared Function CacheText(ByVal Language As String) Dim Source As DataSet = CType(HttpContext.Current.Cache("Text"), DataSet) If Source Is Nothing Then Source = New DataSet(TextData.LoadText(Language).Tables("tbl_text")) HttpContext.Current.Cache("Text") = Source Else Dim intRows As Integer intRows = Source.Tables(0).Rows.Count
If intRows <> CInt(TextData.LoadTextCount(Language)) Then HttpContext.Current.Cache.Remove("Text") Source = New DataSet(TextData.LoadText(Language).Tables("tbl_text")) HttpContext.Current.Cache("Text") = Source End If End If
Return Source End Function
Den kommer med fejl i fjerde linie :
Source = New DataSet(TextData.LoadText(Language).Tables("tbl_text"))
Som lyder på :
Cast from type 'DataTable' to type 'String' is not valid.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.