473,657 Members | 2,434 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Phantom cells in datagrids

Apologies if this has come up before, but I can't find it if it has. I
am fairly new to .Net and am having problems with ghosts in the
datagrid.

Basically I have a find screen that accepts search criteria, then
interrogates a database to find all matching records. These are put
into a dataset, which has a dataview that is used as the datasource of
my datagrid, which is read only. The idea is that the user selects
which record they want to view.

The good news is this all works - well apart from the ghost that is.
Say I run a search that returns 10 records. These all show correctly
in the grid. Say I click on row 9 to highlight it, then go and run a
different search which returns just 5 records. They all display
correctly in the datagrid, then there is a gap and then the previously
highlighted cell remains, just hanging all by itself. It disappears
when you select a real cell, but I can't find any way of getting rid of
this 'ghost' programmaticall y. Any ideas?

If it helps, this is the code I use to populate the datagrid...

Dim conDatabase As New SqlClient.SqlCo nnection
Dim commSQL As New SqlClient.SqlCo mmand
Dim daSQL As New SqlClient.SqlDa taAdapter
Dim dsData As New DataSet

conDatabase.Con nectionString = strConnectionSt ring
conDatabase.Ope n()
commSQL.Connect ion = conDatabase
commSQL.Command Type = CommandType.Sto redProcedure
commSQL.Command Text = "usp_SearchBook s"
' Set parameters
If Me.optTitleAll. Checked = False Then
commSQL.Paramet ers.Add("@Title ", "%" &
Me.txtTitle.Tex t.Trim & "%")
End If
If Me.optSeriesAll .Checked = False Then
Dim clsComboClass As New ComboClass("", 0)
clsComboClass =
CType(Me.cboSer ies.Items(Me.cb oSeries.Selecte dIndex), ComboClass)
commSQL.Paramet ers.Add("@Serie sID", clsComboClass.K eyValue)
End If
If Me.optAuthorAll .Checked = False Then
commSQL.Paramet ers.Add("@Autho r", "%" &
Me.txtAuthor.Te xt.Trim & "%")
End If
' run search
daSQL.SelectCom mand = commSQL
daSQL.Fill(dsDa ta, "Table")

' Show match list in datagrid.
Dim dvView As New DataView(dsData .Tables(0))
dvView.RowState Filter = DataViewRowStat e.OriginalRows
dvView.AllowNew = False
Me.dgResults.Da taSource = dvView
conDatabase.Clo se()

Any help is greatly appreciated.

Cheers

Dave

Nov 21 '05 #1
9 1263
Dave,

Can you try if it is returning *no* rows.

In the datagrid is used internaly a try and catch to handle that, which is
quiet anoying because it takes some time to find that the first time. So
when you than click to quick than you maybe have this problem.

Just a first thought reading your problem.

Cor
Nov 21 '05 #2
Hi Cor

If I run the second search with no results then the datagrid correctly
shows 0 rows, but still shows the 'phantom' cell previously selected.
In this case, with no actual rows to click, there is no way of clearing
the phantom at all. Is this a bug in the datagrid itself?

Cheers

Dave

Nov 21 '05 #3
Dave,

As far as I can see is there something strange in your code.

You add the parameters by a selection.

However than there should be to less parameters be added because if the
checkbox is not checked, than I get the idea that you don't add a parameter.

What do I see wrong (can be a message is not the easiest part to read code)?

Cor
Nov 21 '05 #4
Hi Cor

The stored procedure defaults all parameters to null, so any parameters
I don't pass are treated as nulls and ignored by the SP. I have
already established that the calls to the SP return the correct data -
its just the behaviour of the datagrid that is giving me problems.

Cheers

Dave

Nov 21 '05 #5
Dave,

I have never heard about phantom rows in the datagrid. Do you use a special
painting of that.

Did you check the amount of rowviews in your datasource in advance.
something in a check as
messagebox.show (dvView.rows.co unt.toString) when you set the datasource
everytime.

Cor
"Dave" <da******@nildr am.co.uk> schreef in bericht
news:11******** **************@ g43g2000cwa.goo glegroups.com.. .
Hi Cor

The stored procedure defaults all parameters to null, so any parameters
I don't pass are treated as nulls and ignored by the SP. I have
already established that the calls to the SP return the correct data -
its just the behaviour of the datagrid that is giving me problems.

Cheers

Dave

Nov 21 '05 #6
Hi

I think I left too many distractions in my original question, so here
is an easy way to reproduce the problem...

Create a form and add a datagrid and 2 buttons to it. Cut and paste
the following code and run it. As you see, the load event sets up the
datagrid as I want it, with 2 columns, the first of which is 0 wide.
The first button creates a dataset of 3 records and uses that as the
source for the grid. If you click that you see the 3 rows fine.

The second button does exactly the same thing but with only one record.
If you click row 3 of the grid, then click button 2 you will see the
third row of the OLD grid still displayed (my pkantom) along with the 1
new row.

Public Class Form1
Inherits System.Windows. Forms.Form
#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeCompo nent()

'Add any initialization after the InitializeCompo nent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As
Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Disp ose()
End If
End If
MyBase.Dispose( disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.Componen tModel.IContain er

'NOTE: The following procedure is required by the Windows Form
Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents DataGrid1 As System.Windows. Forms.DataGrid
Friend WithEvents Button1 As System.Windows. Forms.Button
Friend WithEvents Button2 As System.Windows. Forms.Button
<System.Diagnos tics.DebuggerSt epThrough()> Private Sub
InitializeCompo nent()
Me.DataGrid1 = New System.Windows. Forms.DataGrid
Me.Button1 = New System.Windows. Forms.Button
Me.Button2 = New System.Windows. Forms.Button
CType(Me.DataGr id1,
System.Componen tModel.ISupport Initialize).Beg inInit()
Me.SuspendLayou t()
'
'DataGrid1
'
Me.DataGrid1.Da taMember = ""
Me.DataGrid1.He aderForeColor =
System.Drawing. SystemColors.Co ntrolText
Me.DataGrid1.Lo cation = New System.Drawing. Point(381, 36)
Me.DataGrid1.Na me = "DataGrid1"
Me.DataGrid1.Si ze = New System.Drawing. Size(221, 409)
Me.DataGrid1.Ta bIndex = 0
'
'Button1
'
Me.Button1.Loca tion = New System.Drawing. Point(101, 227)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing. Size(137, 70)
Me.Button1.TabI ndex = 1
Me.Button1.Text = "Button1"
'
'Button2
'
Me.Button2.Loca tion = New System.Drawing. Point(99, 360)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing. Size(140, 78)
Me.Button2.TabI ndex = 2
Me.Button2.Text = "Button2"
'
'Form1
'
Me.AutoScaleBas eSize = New System.Drawing. Size(5, 13)
Me.ClientSize = New System.Drawing. Size(643, 510)
Me.Controls.Add (Me.Button2)
Me.Controls.Add (Me.Button1)
Me.Controls.Add (Me.DataGrid1)
Me.Name = "Form1"
Me.Text = "Form1"
CType(Me.DataGr id1,
System.Componen tModel.ISupport Initialize).End Init()
Me.ResumeLayout (False)

End Sub

#End Region

Private Sub Form1_Load(ByVa l sender As System.Object, ByVal e As
System.EventArg s) Handles MyBase.Load
'============== =============== =======
' Setup the style for the data grid.
'============== =============== =======
Dim dgtsTableStyle As New DataGridTableSt yle
dgtsTableStyle. MappingName = "table"

Dim column As New DataGridTextBox Column
column.MappingN ame = "BookID"
column.HeaderTe xt = "BookID"
column.Width = 0
column.ReadOnly = True
dgtsTableStyle. GridColumnStyle s.Add(column)
column.Dispose( )

Dim column2 As New DataGridTextBox Column
column2.Mapping Name = "Title"
column2.HeaderT ext = "Title"
column2.Width = 250
column2.ReadOnl y = True
dgtsTableStyle. GridColumnStyle s.Add(column2)

Me.DataGrid1.Ta bleStyles.Add(d gtsTableStyle)
End Sub

Private Sub button1_Click(B yVal sender As System.Object, ByVal e As
System.EventArg s) Handles Button1.Click
'============== =============== =============== =============== ==
' Fill dataset with 3 records.
'============== =============== =============== =============== ==
Dim dsExample As New DataSet
Dim tblTable As New DataTable("tabl e")

'============== =============
' Set up dataset structure.
'============== =============
tblTable.Column s.Add("BookID",
System.Type.Get Type("System.In t32"))
tblTable.Column s.Add("Title",
System.Type.Get Type("System.St ring"))
dsExample.Table s.Add(tblTable)

Dim ExampleRow As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow("Boo kID") = 1
ExampleRow("Tit le") = "Little Women"
dsExample.Table s("Table").Rows .Add(ExampleRow )

Dim ExampleRow2 As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow2("Bo okID") = 2
ExampleRow2("Ti tle") = "The Odessy"
dsExample.Table s("Table").Rows .Add(ExampleRow 2)

Dim ExampleRow3 As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow3("Bo okID") = 3
ExampleRow3("Ti tle") = "Gone With the Wind"
dsExample.Table s("Table").Rows .Add(ExampleRow 3)

'============== ====
' Create dataview.
'============== ====
Dim dvView As New DataView(dsExam ple.Tables("Tab le"))
dvView.AllowNew = False
Me.DataGrid1.Da taSource = dvView
End Sub

Private Sub button2_Click(B yVal sender As System.Object, ByVal e As
System.EventArg s) Handles Button2.Click
'============== =============== =============== =============== ==
' Fill dataset with 1 record.
'============== =============== =============== =============== ==
Dim dsExample As New DataSet
Dim tblTable As New DataTable("tabl e")

'============== =============
' Set up dataset structure.
'============== =============
tblTable.Column s.Add("BookID",
System.Type.Get Type("System.In t32"))
tblTable.Column s.Add("Title",
System.Type.Get Type("System.St ring"))
dsExample.Table s.Add(tblTable)

Dim ExampleRow As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow("Boo kID") = 9
ExampleRow("Tit le") = "A Christmas Carol"
dsExample.Table s("Table").Rows .Add(ExampleRow )

'============== ====
' Create dataview.
'============== ====
Dim dvView As New DataView(dsExam ple.Tables("Tab le"))
dvView.AllowNew = False
Me.DataGrid1.Da taSource = dvView
End Sub

End Class
That's about as clear as I can make it. I appreciate all your efforts
on this, and hope this makes things easier for you.

Many thanks

Dave

Nov 21 '05 #7
Dave,

It is definitly a bug in my opinion.

As far as I can see is this one causing it
column.ReadOnly = True

Removing that one and set this to
dvView.AllowEdi t = False

Has in my opinion in the case of your sample the same effect in this case.

It is in VS2005 working as it should

I could not find it on MSDN as a bug, I have placed it as question on
another place.

I will try to tell my actions after this in this messagethread.

Cor
Nov 21 '05 #8
Hi,

"Dave" <da******@nildr am.co.uk> wrote in message
news:11******** **************@ g49g2000cwa.goo glegroups.com.. .
Hi

I think I left too many distractions in my original question, so here
is an easy way to reproduce the problem...

Create a form and add a datagrid and 2 buttons to it. Cut and paste
the following code and run it. As you see, the load event sets up the
datagrid as I want it, with 2 columns, the first of which is 0 wide.
The first button creates a dataset of 3 records and uses that as the
source for the grid. If you click that you see the 3 rows fine.

The second button does exactly the same thing but with only one record.
If you click row 3 of the grid, then click button 2 you will see the
third row of the OLD grid still displayed (my pkantom) along with the 1
new row.

It does look like the bug descibed at the following link, if you assign
nothing as the DataSource the second time then the selected cell sticks too.
http://support.microsoft.com/?id=890211

If you want all columns to be readonly then do what Cor said, otherwise you
could try to select the DataGrid before assigning a new DataSource, it seems
to help, eg:

Me.DataGrid1.Se lect()
Me.DataGrid1.Da taSource = dvView

HTH,
Greetings


Public Class Form1
Inherits System.Windows. Forms.Form
#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeCompo nent()

'Add any initialization after the InitializeCompo nent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As
Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Disp ose()
End If
End If
MyBase.Dispose( disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.Componen tModel.IContain er

'NOTE: The following procedure is required by the Windows Form
Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents DataGrid1 As System.Windows. Forms.DataGrid
Friend WithEvents Button1 As System.Windows. Forms.Button
Friend WithEvents Button2 As System.Windows. Forms.Button
<System.Diagnos tics.DebuggerSt epThrough()> Private Sub
InitializeCompo nent()
Me.DataGrid1 = New System.Windows. Forms.DataGrid
Me.Button1 = New System.Windows. Forms.Button
Me.Button2 = New System.Windows. Forms.Button
CType(Me.DataGr id1,
System.Componen tModel.ISupport Initialize).Beg inInit()
Me.SuspendLayou t()
'
'DataGrid1
'
Me.DataGrid1.Da taMember = ""
Me.DataGrid1.He aderForeColor =
System.Drawing. SystemColors.Co ntrolText
Me.DataGrid1.Lo cation = New System.Drawing. Point(381, 36)
Me.DataGrid1.Na me = "DataGrid1"
Me.DataGrid1.Si ze = New System.Drawing. Size(221, 409)
Me.DataGrid1.Ta bIndex = 0
'
'Button1
'
Me.Button1.Loca tion = New System.Drawing. Point(101, 227)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing. Size(137, 70)
Me.Button1.TabI ndex = 1
Me.Button1.Text = "Button1"
'
'Button2
'
Me.Button2.Loca tion = New System.Drawing. Point(99, 360)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing. Size(140, 78)
Me.Button2.TabI ndex = 2
Me.Button2.Text = "Button2"
'
'Form1
'
Me.AutoScaleBas eSize = New System.Drawing. Size(5, 13)
Me.ClientSize = New System.Drawing. Size(643, 510)
Me.Controls.Add (Me.Button2)
Me.Controls.Add (Me.Button1)
Me.Controls.Add (Me.DataGrid1)
Me.Name = "Form1"
Me.Text = "Form1"
CType(Me.DataGr id1,
System.Componen tModel.ISupport Initialize).End Init()
Me.ResumeLayout (False)

End Sub

#End Region

Private Sub Form1_Load(ByVa l sender As System.Object, ByVal e As
System.EventArg s) Handles MyBase.Load
'============== =============== =======
' Setup the style for the data grid.
'============== =============== =======
Dim dgtsTableStyle As New DataGridTableSt yle
dgtsTableStyle. MappingName = "table"

Dim column As New DataGridTextBox Column
column.MappingN ame = "BookID"
column.HeaderTe xt = "BookID"
column.Width = 0
column.ReadOnly = True
dgtsTableStyle. GridColumnStyle s.Add(column)
column.Dispose( )

Dim column2 As New DataGridTextBox Column
column2.Mapping Name = "Title"
column2.HeaderT ext = "Title"
column2.Width = 250
column2.ReadOnl y = True
dgtsTableStyle. GridColumnStyle s.Add(column2)

Me.DataGrid1.Ta bleStyles.Add(d gtsTableStyle)
End Sub

Private Sub button1_Click(B yVal sender As System.Object, ByVal e As
System.EventArg s) Handles Button1.Click
'============== =============== =============== =============== ==
' Fill dataset with 3 records.
'============== =============== =============== =============== ==
Dim dsExample As New DataSet
Dim tblTable As New DataTable("tabl e")

'============== =============
' Set up dataset structure.
'============== =============
tblTable.Column s.Add("BookID",
System.Type.Get Type("System.In t32"))
tblTable.Column s.Add("Title",
System.Type.Get Type("System.St ring"))
dsExample.Table s.Add(tblTable)

Dim ExampleRow As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow("Boo kID") = 1
ExampleRow("Tit le") = "Little Women"
dsExample.Table s("Table").Rows .Add(ExampleRow )

Dim ExampleRow2 As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow2("Bo okID") = 2
ExampleRow2("Ti tle") = "The Odessy"
dsExample.Table s("Table").Rows .Add(ExampleRow 2)

Dim ExampleRow3 As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow3("Bo okID") = 3
ExampleRow3("Ti tle") = "Gone With the Wind"
dsExample.Table s("Table").Rows .Add(ExampleRow 3)

'============== ====
' Create dataview.
'============== ====
Dim dvView As New DataView(dsExam ple.Tables("Tab le"))
dvView.AllowNew = False
Me.DataGrid1.Da taSource = dvView
End Sub

Private Sub button2_Click(B yVal sender As System.Object, ByVal e As
System.EventArg s) Handles Button2.Click
'============== =============== =============== =============== ==
' Fill dataset with 1 record.
'============== =============== =============== =============== ==
Dim dsExample As New DataSet
Dim tblTable As New DataTable("tabl e")

'============== =============
' Set up dataset structure.
'============== =============
tblTable.Column s.Add("BookID",
System.Type.Get Type("System.In t32"))
tblTable.Column s.Add("Title",
System.Type.Get Type("System.St ring"))
dsExample.Table s.Add(tblTable)

Dim ExampleRow As DataRow = dsExample.Table s("Table").NewR ow
ExampleRow("Boo kID") = 9
ExampleRow("Tit le") = "A Christmas Carol"
dsExample.Table s("Table").Rows .Add(ExampleRow )

'============== ====
' Create dataview.
'============== ====
Dim dvView As New DataView(dsExam ple.Tables("Tab le"))
dvView.AllowNew = False
Me.DataGrid1.Da taSource = dvView
End Sub

End Class
That's about as clear as I can make it. I appreciate all your efforts
on this, and hope this makes things easier for you.

Many thanks

Dave

Nov 21 '05 #9
Gentlemen, I am in your debt. Cor, as you quite rightly pointed out,
if I make the view read only then the problem goes away. In fact when
I do that, as soon as I shift focus off the datagrid the selected row
is unhighlighted anyway. That has fixed my problem

Bart, my problem sounds like it is related to the Microsoft description
and may well have the same route.

Anyway, all is now well with the world. Many thanks indeed :-)

Dave

Nov 21 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1226
by: Kumar | last post by:
try this Dim mycheck As CheckBox = CType(dgWelcomePacks.Items (i).Cells(7).Controls(1), CheckBox) regards, Kumar. >-----Original Message-----
3
2352
by: memememe | last post by:
I see weak reference on the .net api, but I do not see soft or phantom, are they supported on .net?
0
1237
by: Rod Billett | last post by:
The included html contains 3 divs. One primary Div, with 2 nested divs. the second nested DIV contains an empty table. Problem 1: Phantom Space. When viewed within the browser, the div 'action panel' is spaced a picel or two lower than the div 'ItemsPanel' even though both are the same height. Oddly enough, if you remove the table (ID Removemetowork) this phantom space dissappears and everything is fine with the world Problem 2:...
3
1869
by: Simon Prince | last post by:
Hi, I'm trying detect an empty cell in a datagrid when the content is posted back to the server. My code is... Dim vDgi_GridItem As DataGridItem For Each vDgi_GridItem In oASP_Dgd_Receptions.Items Response.Write( CType( vDgi_GridItem.Cells(10).Text.trim.length ,
4
416
by: ree32 | last post by:
I have a placeholder and depending on a user input(a drop downlist) when the user clicks a button I dynamically create a number of datagrids and fill them with data from a database. But the problem is that on a postback I lose all the datagrids and their data. I have looked at numerous pages on the net regarding this issue. Many say you have to rebuild build the controls on postback. How am I meant to do this in my situation as I don't...
9
1591
by: TB | last post by:
Hi all: I realize that this is strictly speaking not an ASP.NET question, but since most of you people out there SQL gurus as well, I hope you will bear with me on this occasion: I would like to know how to create a "phantom" record when running a SELECT query. For example:
7
1842
by: Ausclad | last post by:
Ok, ill try again..... It seems fairly simple. I have two combo boxes in a datagrid. The datagrid is bound to a a table in a dataset. The two combo boxes are bound to a single data table in a different dataset. One combo box is displaying the Employees payroll ID. The other is
2
1929
by: rn5a | last post by:
In a shopping cart app, a ASPX page retrieves the order details & personal details of a user from a MS-Access database table depending upon the username of the user. The order details of a particular order (like ProductID, Name, Description, Quantity etc.) are displayed in one DataGrid where as the personal details of the buyer corresponding to this order (like Name, E-Mail, Shipping & Billing Address etc.) are displayed in another...
2
1811
by: Mike P | last post by:
I am trying to get access to the data in different rows of my gridview on a button click, in a similar way to the one I used with my 1.1 datagrids. But the cells always seem to be empty. Here is my code : protected void btnSubmit_Click(object sender, EventArgs e) { //get list of pkcustomerrecords and email addresses, put into generic list List<EmailDetailsem = new List<EmailDetails>();
0
8395
marktang
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, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8605
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6166
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5632
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4155
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4306
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2726
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
1955
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1615
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.