Hi all,
I'm trying to create a dataset as a component to make it accessable from all
forms. I have used that following code so far in the component designer:
Inherits System.ComponentModel.Component
Dim _TryDs As dataSet = NewTry
Public Property dataSet() As dataSet
Get
Return Me._TryDs
End Get
Set(ByVal Value As dataSet)
Me._TryDs = Value
End Set
End Property
Now I have no idea how to add the 2 tables. I have created 2 subs
"createTableA" and "createTableB" and added the commands
createTableA()
createTableB()
after the initialize component line.
When I try to reference the component the DS is recognized but the tables
are not. I know I'm missing something here. Can anybody help?
Thanks,
Claus 12 1790
Cjobes,
Does this most simple sample that I once made for somebody give you an idea?
\\\
Public Class MyDataset
Inherits DataSet
Sub New()
MyBase.new()
Dim dt As New DataTable("TableKlaus")
Me.Tables.Add(dt)
dt.Columns.Add("Klaus")
dt.Columns.Add("Cor")
End Sub
Public ReadOnly Property TableKlaus() As DataTable
Get
Return Me.Tables("TableKlaus")
End Get
End Property
End Class
///
dim ds as new MyDataset
dim dt as datatable = ds.TableKlaus
I hope this gives some ideas?
Cor
"cjobes" <cj****@nova-tech.org> schreef in bericht
news:O1*************@TK2MSFTNGP09.phx.gbl... Hi all,
I'm trying to create a dataset as a component to make it accessable from all forms. I have used that following code so far in the component designer:
Inherits System.ComponentModel.Component Dim _TryDs As dataSet = NewTry
Public Property dataSet() As dataSet Get Return Me._TryDs End Get Set(ByVal Value As dataSet) Me._TryDs = Value End Set End Property
Now I have no idea how to add the 2 tables. I have created 2 subs "createTableA" and "createTableB" and added the commands createTableA() createTableB() after the initialize component line.
When I try to reference the component the DS is recognized but the tables are not. I know I'm missing something here. Can anybody help? Thanks, Claus
Cor,
Thanks a lot. I'm starting to understand this. I assume that your sample
code goes into the component code. I have two more questions:
I need to create 2 tables. Would I do this in the same public class? Also,
could you give me a short sample of what I need to do in a form to create
and instance of the 2 tables?
Actually there is one more question. If I fill the tables with data in one
form and then create an instance of the tables in another form will the data
still be there?
Thanks,
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message
news:Oc**************@TK2MSFTNGP15.phx.gbl... Cjobes,
Does this most simple sample that I once made for somebody give you an
idea? \\\ Public Class MyDataset Inherits DataSet Sub New() MyBase.new() Dim dt As New DataTable("TableKlaus") Me.Tables.Add(dt) dt.Columns.Add("Klaus") dt.Columns.Add("Cor") End Sub Public ReadOnly Property TableKlaus() As DataTable Get Return Me.Tables("TableKlaus") End Get End Property End Class ///
dim ds as new MyDataset dim dt as datatable = ds.TableKlaus
I hope this gives some ideas?
Cor
"cjobes" <cj****@nova-tech.org> schreef in bericht news:O1*************@TK2MSFTNGP09.phx.gbl... Hi all,
I'm trying to create a dataset as a component to make it accessable from all forms. I have used that following code so far in the component designer:
Inherits System.ComponentModel.Component Dim _TryDs As dataSet = NewTry
Public Property dataSet() As dataSet Get Return Me._TryDs End Get Set(ByVal Value As dataSet) Me._TryDs = Value End Set End Property
Now I have no idea how to add the 2 tables. I have created 2 subs "createTableA" and "createTableB" and added the commands createTableA() createTableB() after the initialize component line.
When I try to reference the component the DS is recognized but the
tables are not. I know I'm missing something here. Can anybody help? Thanks, Claus
Claus, Thanks a lot. I'm starting to understand this. I assume that your sample code goes into the component code.
You cannot inherit twice however the dataset that is inherited does that
already see in top of this page http://msdn.microsoft.com/library/de...classtopic.asp
I have two more questions: I need to create 2 tables. Would I do this in the same public class? Also, could you give me a short sample of what I need to do in a form to create and instance of the 2 tables?
Everything you do is up to you, however why not. I showed the things above
in a new sample bellow however how far you go is again up to you. I made a
very simple sample where I made an extra datatable and load a datatable as
method in this extra and showed that table on a datagrid
\\\needs new project with a datagrid on the form
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As New MyDataset
For i As Integer = 0 To 10
ds.KlausTableAddNew(New Object() {i.ToString, ChrW(i + 65)})
Next
DataGrid1.DataSource = ds.TableKlaus
End Sub
End Class
Public Class MyDataset
Inherits DataSet
Sub New()
MyBase.new()
Dim dt As New DataTable("TableKlaus")
Me.Tables.Add(dt)
dt.Columns.Add("Klaus")
dt.Columns.Add("Cor")
dt = New DataTable("TableCor")
Me.Tables.Add(dt)
dt.Columns.Add("John")
dt.Columns.Add("Herfried")
End Sub
Public ReadOnly Property TableKlaus() As DataTable
Get
Return Me.Tables("TableKlaus")
End Get
End Property
Public ReadOnly Property TableCor() As DataTable
Get
Return Me.Tables("TableCor")
End Get
End Property
Public Sub KlausTableAddNew(ByVal obj As Object())
Dim dr As DataRow = Me.TableKlaus.NewRow
dr.ItemArray = obj
Me.TableKlaus.Rows.Add(dr)
End Sub
End Class
///
I hope this helps a little bit?
Cor
Claus,
I see I deleted with pasting in the sample a part I had answered as well If I fill the tables with data in one form and then create an instance of the tables in another form will the data still be there?
That class is nothing, the object you create from it holds the data, and
than it is the same as whatever you create.
Assuming this is for a winform (it is not the same for a webform), than
means when you do
Friend ds as new mydataset
somewhere in your project, than it will everywhere in your project be usable
with the information in it. (As long as you do not set it too something
else of course)
I hope this helps?
Cor
Thanks Cor,
The handling of the additional table is what I thought but you have me
totally confused with "needs new project". I think I need some tutoring to
cut the learning curve in half. I'm happy to pay you for your time. Can you
contact me at cj****@nova-tech.org?
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message
news:Ol****************@TK2MSFTNGP11.phx.gbl... Claus,
Thanks a lot. I'm starting to understand this. I assume that your sample code goes into the component code. You cannot inherit twice however the dataset that is inherited does that already see in top of this page http://msdn.microsoft.com/library/de...classtopic.asp >I have two more questions: I need to create 2 tables. Would I do this in the same public class?
Also, could you give me a short sample of what I need to do in a form to
create and instance of the 2 tables?
Everything you do is up to you, however why not. I showed the things above in a new sample bellow however how far you go is again up to you. I made a very simple sample where I made an extra datatable and load a datatable as method in this extra and showed that table on a datagrid
\\\needs new project with a datagrid on the form Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim ds As New MyDataset For i As Integer = 0 To 10 ds.KlausTableAddNew(New Object() {i.ToString, ChrW(i + 65)}) Next DataGrid1.DataSource = ds.TableKlaus End Sub End Class Public Class MyDataset Inherits DataSet Sub New() MyBase.new() Dim dt As New DataTable("TableKlaus") Me.Tables.Add(dt) dt.Columns.Add("Klaus") dt.Columns.Add("Cor") dt = New DataTable("TableCor") Me.Tables.Add(dt) dt.Columns.Add("John") dt.Columns.Add("Herfried") End Sub Public ReadOnly Property TableKlaus() As DataTable Get Return Me.Tables("TableKlaus") End Get End Property Public ReadOnly Property TableCor() As DataTable Get Return Me.Tables("TableCor") End Get End Property Public Sub KlausTableAddNew(ByVal obj As Object()) Dim dr As DataRow = Me.TableKlaus.NewRow dr.ItemArray = obj Me.TableKlaus.Rows.Add(dr) End Sub End Class ///
I hope this helps a little bit?
Cor
Claus,
That "needs new project" is only for trying the sample, nothing extra.
:-))
Cor
"cjobes" <cj****@nova-tech.org>
.... Thanks Cor,
The handling of the additional table is what I thought but you have me totally confused with "needs new project". I think I need some tutoring to cut the learning curve in half. I'm happy to pay you for your time. Can you contact me at cj****@nova-tech.org?
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message news:Ol****************@TK2MSFTNGP11.phx.gbl... Claus,
> Thanks a lot. I'm starting to understand this. I assume that your > sample > code goes into the component code.
You cannot inherit twice however the dataset that is inherited does that already see in top of this page http://msdn.microsoft.com/library/de...classtopic.asp >I have two more questions: > I need to create 2 tables. Would I do this in the same public class? Also, > could you give me a short sample of what I need to do in a form to create > and instance of the 2 tables?
Everything you do is up to you, however why not. I showed the things above in a new sample bellow however how far you go is again up to you. I made a very simple sample where I made an extra datatable and load a datatable as method in this extra and showed that table on a datagrid
\\\needs new project with a datagrid on the form Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim ds As New MyDataset For i As Integer = 0 To 10 ds.KlausTableAddNew(New Object() {i.ToString, ChrW(i + 65)}) Next DataGrid1.DataSource = ds.TableKlaus End Sub End Class Public Class MyDataset Inherits DataSet Sub New() MyBase.new() Dim dt As New DataTable("TableKlaus") Me.Tables.Add(dt) dt.Columns.Add("Klaus") dt.Columns.Add("Cor") dt = New DataTable("TableCor") Me.Tables.Add(dt) dt.Columns.Add("John") dt.Columns.Add("Herfried") End Sub Public ReadOnly Property TableKlaus() As DataTable Get Return Me.Tables("TableKlaus") End Get End Property Public ReadOnly Property TableCor() As DataTable Get Return Me.Tables("TableCor") End Get End Property Public Sub KlausTableAddNew(ByVal obj As Object()) Dim dr As DataRow = Me.TableKlaus.NewRow dr.ItemArray = obj Me.TableKlaus.Rows.Add(dr) End Sub End Class ///
I hope this helps a little bit?
Cor
Thanks again Cor,
From your response I assume that you are not interested in making some
"tutor money". If you change your mind, you have my email.
I will try your suggestions tonight. Hopefully I understood everything
right. I'm a network guy with some experience in VB, so it will be very
interesting to say the least.
Thanks again, I really appreciate your patient help.
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message
news:u8**************@TK2MSFTNGP15.phx.gbl... Claus,
I see I deleted with pasting in the sample a part I had answered as well
If I fill the tables with data in one form and then create an instance of the tables in another form will the data still be there? That class is nothing, the object you create from it holds the data, and than it is the same as whatever you create.
Assuming this is for a winform (it is not the same for a webform), than means when you do
Friend ds as new mydataset
somewhere in your project, than it will everywhere in your project be
usable with the information in it. (As long as you do not set it too something else of course)
I hope this helps?
Cor
Cor,
Sorry to be so stupid but I must still be doing something wrong. I created
the component and defined the tables. I then created an instance in form1
and manipulated the data. As a test I brought a DataGrid up in form1 and it
displays the data correctly.
I created a second form (SearchResult) with a DataGrid(ResultGrid) and added
the following code:
Dim ds As GlobalDS.MyDataset
Dim dt As DataTable = ds.tbSelect
Private Sub SearchResult_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.ResultGrid.DataMember = "dt"
Me.ResultGrid.DataSource = ds
End Sub
On form1 I added the code:
Dim frmResults As New SearchResult()
frmResults.ShowDialog()
When I run Debug the program stops at:
Dim dt as DataTable=ds.tbSelect
with an error "Object reference not set to an instance of an object"
What am I doing wrong?
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message
news:u8**************@TK2MSFTNGP15.phx.gbl... Claus,
I see I deleted with pasting in the sample a part I had answered as well
If I fill the tables with data in one form and then create an instance of the tables in another form will the data still be there? That class is nothing, the object you create from it holds the data, and than it is the same as whatever you create.
Assuming this is for a winform (it is not the same for a webform), than means when you do
Friend ds as new mydataset
somewhere in your project, than it will everywhere in your project be
usable with the information in it. (As long as you do not set it too something else of course)
I hope this helps?
Cor
Claus,
What I cannot see is if Global.Dataset is an object or the class itself.
When it is the class or a member of that than it has to be probably
dim ds as "new" GlobalDS.MyDataset
I hope this helps?
Cor
"cjobes" <cj****@nova-tech.org> Sorry to be so stupid but I must still be doing something wrong. I created the component and defined the tables. I then created an instance in form1 and manipulated the data. As a test I brought a DataGrid up in form1 and it displays the data correctly. I created a second form (SearchResult) with a DataGrid(ResultGrid) and added the following code:
Dim ds As GlobalDS.MyDataset Dim dt As DataTable = ds.tbSelect
Private Sub SearchResult_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ResultGrid.DataMember = "dt" Me.ResultGrid.DataSource = ds End Sub
On form1 I added the code: Dim frmResults As New SearchResult() frmResults.ShowDialog()
When I run Debug the program stops at: Dim dt as DataTable=ds.tbSelect with an error "Object reference not set to an instance of an object"
What am I doing wrong?
Claus "Cor Ligthert" <no************@planet.nl> wrote in message news:u8**************@TK2MSFTNGP15.phx.gbl... Claus,
I see I deleted with pasting in the sample a part I had answered as well
> > If I fill the tables with data in one > form and then create an instance of the tables in another form will the > data > still be there? > That class is nothing, the object you create from it holds the data, and than it is the same as whatever you create.
Assuming this is for a winform (it is not the same for a webform), than means when you do
Friend ds as new mydataset
somewhere in your project, than it will everywhere in your project be usable with the information in it. (As long as you do not set it too something else of course)
I hope this helps?
Cor
Cor,
if I dim ds as New GlobalDS.MyDataset the program runs but the DataGrid on
the second form is empty, so I thought I had to leave the NEW out on the
second form.
I guess that was wrong.
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message
news:Ot**************@TK2MSFTNGP15.phx.gbl... Claus,
What I cannot see is if Global.Dataset is an object or the class itself. When it is the class or a member of that than it has to be probably dim ds as "new" GlobalDS.MyDataset
I hope this helps?
Cor
"cjobes" <cj****@nova-tech.org> Sorry to be so stupid but I must still be doing something wrong. I
created the component and defined the tables. I then created an instance in
form1 and manipulated the data. As a test I brought a DataGrid up in form1 and it displays the data correctly. I created a second form (SearchResult) with a DataGrid(ResultGrid) and added the following code:
Dim ds As GlobalDS.MyDataset Dim dt As DataTable = ds.tbSelect
Private Sub SearchResult_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ResultGrid.DataMember = "dt" Me.ResultGrid.DataSource = ds End Sub
On form1 I added the code: Dim frmResults As New SearchResult() frmResults.ShowDialog()
When I run Debug the program stops at: Dim dt as DataTable=ds.tbSelect with an error "Object reference not set to an instance of an object"
What am I doing wrong?
Claus "Cor Ligthert" <no************@planet.nl> wrote in message news:u8**************@TK2MSFTNGP15.phx.gbl... Claus,
I see I deleted with pasting in the sample a part I had answered as
well > > If I fill the tables with data in one > form and then create an instance of the tables in another form will
the > data > still be there? > That class is nothing, the object you create from it holds the data,
and than it is the same as whatever you create.
Assuming this is for a winform (it is not the same for a webform), than means when you do
Friend ds as new mydataset
somewhere in your project, than it will everywhere in your project be usable with the information in it. (As long as you do not set it too
something else of course)
I hope this helps?
Cor
Cor,
I played around with this a bit further. When I add this code to Form1
Dim frmResults As New SearchResult()
frmResults.DataSet = ds
frmResults.ShowDialog()
and this code to Form2
Public WriteOnly Property DataSet() As DataSet
Set(ByVal Value As DataSet)
ResultGrid.DataSource = Value
End Set
End Property
the DataGrid displays the correct data. But I also need to be able to
further manipulate the data in both tables on Form2 and I don't seem to be
able to do that.
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message
news:Ot**************@TK2MSFTNGP15.phx.gbl... Claus,
What I cannot see is if Global.Dataset is an object or the class itself. When it is the class or a member of that than it has to be probably dim ds as "new" GlobalDS.MyDataset
I hope this helps?
Cor
"cjobes" <cj****@nova-tech.org> Sorry to be so stupid but I must still be doing something wrong. I
created the component and defined the tables. I then created an instance in
form1 and manipulated the data. As a test I brought a DataGrid up in form1 and it displays the data correctly. I created a second form (SearchResult) with a DataGrid(ResultGrid) and added the following code:
Dim ds As GlobalDS.MyDataset Dim dt As DataTable = ds.tbSelect
Private Sub SearchResult_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.ResultGrid.DataMember = "dt" Me.ResultGrid.DataSource = ds End Sub
On form1 I added the code: Dim frmResults As New SearchResult() frmResults.ShowDialog()
When I run Debug the program stops at: Dim dt as DataTable=ds.tbSelect with an error "Object reference not set to an instance of an object"
What am I doing wrong?
Claus "Cor Ligthert" <no************@planet.nl> wrote in message news:u8**************@TK2MSFTNGP15.phx.gbl... Claus,
I see I deleted with pasting in the sample a part I had answered as
well > > If I fill the tables with data in one > form and then create an instance of the tables in another form will
the > data > still be there? > That class is nothing, the object you create from it holds the data,
and than it is the same as whatever you create.
Assuming this is for a winform (it is not the same for a webform), than means when you do
Friend ds as new mydataset
somewhere in your project, than it will everywhere in your project be usable with the information in it. (As long as you do not set it too
something else of course)
I hope this helps?
Cor
Found a way to do it and thanks to Charlie I got the final hiccup out as
well.
Thanks for your help Cor, knowing my skills it will not be the last time I'm
asking for help in here.
Claus
"cjobes" <cj****@nova-tech.org> wrote in message
news:e4**************@TK2MSFTNGP09.phx.gbl... Cor,
I played around with this a bit further. When I add this code to Form1
Dim frmResults As New SearchResult() frmResults.DataSet = ds frmResults.ShowDialog()
and this code to Form2
Public WriteOnly Property DataSet() As DataSet Set(ByVal Value As DataSet) ResultGrid.DataSource = Value End Set End Property
the DataGrid displays the correct data. But I also need to be able to further manipulate the data in both tables on Form2 and I don't seem to be able to do that.
Claus
"Cor Ligthert" <no************@planet.nl> wrote in message news:Ot**************@TK2MSFTNGP15.phx.gbl... Claus,
What I cannot see is if Global.Dataset is an object or the class
itself. When it is the class or a member of that than it has to be probably dim ds as "new" GlobalDS.MyDataset
I hope this helps?
Cor
"cjobes" <cj****@nova-tech.org> Sorry to be so stupid but I must still be doing something wrong. I
created the component and defined the tables. I then created an instance in form1 and manipulated the data. As a test I brought a DataGrid up in form1
and it displays the data correctly. I created a second form (SearchResult) with a DataGrid(ResultGrid) and added the following code:
Dim ds As GlobalDS.MyDataset Dim dt As DataTable = ds.tbSelect
Private Sub SearchResult_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load Me.ResultGrid.DataMember = "dt" Me.ResultGrid.DataSource = ds End Sub
On form1 I added the code: Dim frmResults As New SearchResult() frmResults.ShowDialog()
When I run Debug the program stops at: Dim dt as DataTable=ds.tbSelect with an error "Object reference not set to an instance of an object"
What am I doing wrong?
Claus "Cor Ligthert" <no************@planet.nl> wrote in message news:u8**************@TK2MSFTNGP15.phx.gbl... > Claus, > > I see I deleted with pasting in the sample a part I had answered as well> > > > > If I fill the tables with data in one > > form and then create an instance of the tables in another form will the> > data > > still be there? > > > That class is nothing, the object you create from it holds the data, and> than it is the same as whatever you create. > > Assuming this is for a winform (it is not the same for a webform),
than> means when you do > > Friend ds as new mydataset > > somewhere in your project, than it will everywhere in your project be usable > with the information in it. (As long as you do not set it too something> else of course) > > I hope this helps? > > Cor > >
This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Eric Petruzzelli |
last post by:
If I fill my dataset and there is no data. The dataset is still created
with zero rows (all columns are there). When I add my first row using
the script below, it takes over 2 seconds to add??? If...
|
by: DotNetJunky |
last post by:
I have built a control that runs an on-line help system. Depending on the
category you selected via dropdownlist, it goes out and gets the child
subcategories, and if there are any, adds a new...
|
by: satria |
last post by:
hi all,
i have a accesslevel table's that has 2 field, id and accesslevelname.
i successfully binded the table to datagrid, but i'd like to display a
new column, called number. so it 'll display...
|
by: Trevor |
last post by:
Hey,
I am trying to do this tutorial on the microsoft site :
http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/dndotnet/html/usingadonet.asp
I can get everything to work up to...
|
by: Geoff Jones |
last post by:
Hi
Can anybody help me with the following, hopefully simple, question?
I have a table which I've connected to a dataset. I wish to add a new column
to the beginning of the table
and to fill...
|
by: DotNetJunkies User |
last post by:
I'm trying create a single page app that allows the user to enter text (Serial) via a form and submit and populate that value into a datagrid via a datatable.
It works for ONE value but each time...
|
by: Rudy |
last post by:
Hi all,
I know this is easy, just can't seem to get it. I have a windows form, and
a text box, with a value already in it. I need to add that value to a table.
It's just one value, so the entire...
|
by: Mark |
last post by:
I'm trying to add a table to a dataset but get the error:
"A DataTable named 'BordDates0040' already belongs to this DataSet."
Code:
Dim dtBordDates As DataTable
dtBordDates =...
|
by: JMO |
last post by:
I can import a csv file with no problem. I can also add columns to the
datagrid upon import. I want to be able to start importing at the 3rd
row. This will pick up the headers necessary for the...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
| |