Many peoples ask me how we can insert data in SQL Server Compact Edition (CE) database. Actually they had written the code and until they not closed the emulator they have those modified/inserted data, but as soon as they closed the emulator the data is not reflected in the CE db. They are wondering with the question in mind, How that can be possible?
Let’s take a simple example so you can understand the basic concept what happen behind the scene:
As compare to the above scenario when you run your mobile application and its open in emulator, then both the OS and the emulator is two different machines. Your CE db of OS is totally different from your emulator CE db, so whatever you changed in your emulator db is not getting reflected in your OS.
For example when you deploy your application is windows mobile and when you modify the data, the modified data is displayed in mobile not in the OS where you developed that application.
One way I know do it is by sharing the storage card of
Imports
System.Data
Imports
System.Data.SqlServerCe
Imports
System.IO
Public
Class frmEmp
Private
Sub btnGetEmployees_Click(ByVal
sender As System.Object,
ByVal e As System.EventArgs)
Handles btnGetEmployees.Click
GetTableData()
End
Sub
Private
Sub GetTableData()
Dim conn As SqlCeConnection =
Nothing
Try
btnGetEmployees.Enabled
= False
conn
= New SqlCeConnection("Data
Source = \Program Files\SampleMobileApplication\mydatabase.sdf;")
conn.Open()
Dim cmd As SqlCeCommand
= conn.CreateCommand()
Dim dAdp As SqlCeDataAdapter
= New SqlCeDataAdapter()
Dim ds As
New DataSet
cmd.CommandText
= "SELECT * FROM EMP"
dAdp.SelectCommand
= cmd
cmd.ExecuteReader()
dAdp.Fill(ds)
dgEmp.DataSource
= ds.Tables(0)
Catch ex As Exception
Finally
conn.Close()
btnGetEmployees.Enabled
= True
End Try
End
Sub
Private
Sub btnAddNew_Click(ByVal
sender As System.Object,
ByVal e As System.EventArgs)
Handles btnAddNew.Click
Dim frmAddNewEmp As
New frmAddEmp
frmAddNewEmp.Show()
End
Sub
End
Class
Imports
System.Data
Imports
System.Data.SqlServerCe
Imports
System.IO
Public Class
frmAddEmp
Private Sub btnBack_Click(ByVal sender As
System.Object, ByVal
e As System.EventArgs)
Handles btnBack.Click
Me.Close()
End Sub
Private Sub btnSave_Click(ByVal sender As
System.Object, ByVal
e As System.EventArgs)
Handles btnSave.Click
If txtID.Text.Trim.Equals(String.Empty)
Then
MessageBox.Show("Please
enter three digit employee ID.", Me.Text)
ElseIf txtName.Text.Trim.Equals(String.Empty)
Then
MessageBox.Show("Please
enter employee name.",
Me.Text)
ElseIf txtID.Text.Length >
3 Then
MessageBox.Show("Invalid
employee ID length, only 3 digits are supported.",
Me.Text)
ElseIf txtName.Text.Length > 255
Then
MessageBox.Show("Invalid
employee name length, only 255 character are supported.",
Me.Text)
Else
Dim conn
As SqlCeConnection =
Nothing
Try
conn =
New SqlCeConnection("Data
Source = \Program Files\SampleMobileApplication\mydatabase.sdf;")
conn.Open()
Dim
cmd As SqlCeCommand
= conn.CreateCommand()
Dim
dAdp As SqlCeDataAdapter
= New SqlCeDataAdapter()
Dim
ds As
New DataSet
cmd.CommandText
= String.Format("INSERT INTO EMP(ID, [NAME]) VALUES ('{0}','{1}')", txtID.Text, txtName.Text)
dAdp.InsertCommand = cmd
cmd.ExecuteNonQuery()
MessageBox.Show("Saved Successfully.", Me.Text)
txtID.Text =
String.Empty
txtName.Text =
String.Empty
txtID.Focus()
Catch ex
As Exception
MessageBox.Show(ex.Message,
Me.Text)
Finally
conn.Close()
End Try
End
If
End Sub
End Class
| You must Sign In to use this message board. | |||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||