How Can I Get My Desktop App To Talk To My Windows CE Device In Vb.net Compact Framework?
May 9, 2008
HI all,
Que 1.
M doing PDA Project in Vb.net Compact framework [ CF ]. In tht I need to do synchronization My PDA's database with Desktop Computer's database manually.
So Plz Suggest me some options .....
One of them I know & Its RAPI..
--> "RAPI allows desktop based applications to talk with CE devices while they're connected to the desktop via ActiveSync".
but M confused regarding ActiveSync Bcoz i want to do it Manually.
How can I tell if the System.Data.SqlServerCe assembly I am referencing is meant for Desktop use as opposed to Compact development? We are using NUnit as our testing framework and I get the following error when I attempt to execute nunit-console on my test fixture referencing SqlServerCe:
System.IO.FileLoadException : Could not load file or assembly 'System.Data.SqlServerCe, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ---->
System.IO.FileLoadException : Could not load file or assembly 'System.Data.SqlServerCe, Version=3.0.3600.0, Culture=neutral, PublicKeyToken=3be235df1c8d2ad3, Retargetable=Yes' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
The unit tests run fine from inside of Visual Studio using the Resharper Unit Test Runner...
Have two C# applications - one WinForms desktop app, the other a WinForms smart device app. Both use SQL Server Compact CE 3.5 to store data locally. Both work just fine.
Now the desktop app needs to open and update the .SDF file that is stored on the Windows Mobile device. (Device will be docked via USB.)
What format would the path to the .SDF look like that the WinForms application would need to specify in order to open it?
you can, with a dataset do something like myDataSet.WriteXml(m_XmlFile, XmlWriteMode.IgnoreSchema) and get XML for a record.... is it possible to do something like that with SQLserverCeresultset? i know i could probably loop thru the columns and create the xml manually... but using somethinglike writexml will give better performance? right now im not using anything from the XML class... from my previous exp with using XML classes on the Compact framework gives slow performance...
End Sub this code worked well. we know sql7 is not compatiable with vista. please tell us how to connect it wiith sql2005 . we downloaded orcas express edition beta. we created a database also. please let u know how to connect with Microsoft SQL Server Compact 3.5 (.NET Framework Data Provider for Microsoft SQL Server Compact 3.5).
I want to create an application that will have support two platforms, Window's desktop and Windows Mobile 5/6. The application will need to have the data synchronized when the device is put in the cradle via ActiveSync on WinXP or Sync Center on Vista.
I want to use the new SQL Compact Edition to do this. The problem I'm having is how do I sync the data? I know about RDA and Merge Replication, but for a generally distributed application to customers via the internet, how do I make this work seamlessly without a complicated setup? This application will be sold to thousands of users without technical knowhow of how to use advanced synchronization configurations.
I have to assume other developers must be interested in a scenario like this, but I have yet to see a good solution in my searches on the web or Microsoft's site.
I don't want to use Access on the desktop. I also don't want to use RAPI to transfer files as there are security issues with newer devices.
I'm coming close to scoping out a 3rd party database or home-grown solution, but this would not be optimal.
...works on my device, but on my computer it gives SqlCeException with message: The database file cannot be found. Check the path to the database. [ File name = Program FilesTreeNotesTreeNotes.sdf ]
I've tried all sorts of things, but the computer just can't find the database. I've even tried putting a copy of the database into... C:Program FilesTreeNotesTreeNotes.sdf...hoping that the computer will find it there.
I want to create an application for home users which runs on their mobile device (smartphone) and their desktop PC and keeps the data synchronized between them. On their desktop I want to run either SSCE or SSExpress. There are so many options in the SSCE literature, which options should I use? How do I synchronize the data? The literature has so many options I don't know where to start.
I am aware of the many posts that have addressed this issue in the past - I resolved this issue many months ago when it first happened to me. However, I have recently created a headless version of my Windows CE 6.0 based project that uses the Headless versions of the Compact Framework and this problem has suddenly re-surfaced. As in my UI equipped versions, the SQL CE cab files are copied to the device and have been installed. I have also tried copying the sqlceme35.dll to the application folder. The only real difference I can see is that the device is using the headless version so I suspect that there may be some incompatibility.
Has anyone successfully deployed a SCQL CE aplication to a headless device and if so were there any special steps that had to be taken to make it work?
I have two instances of SQL Server on the same PC:
Default instance: SQL Server 2000 Named instance with name €œMS2005€?: SQL Server 2005. Also I have another SQL Server 2005 on another PC.
I created a .NET 2.0 Compact Framework application that connects to the database and executes simple query. This application can connect to any instance of the SQL Server when it is executed on the PC (not on the server). But the problem is that when I try to execute the application from the windows CE 5.0 device, the application can only connect to the default instance (SQL 2000 and 2005) and can not connect to the named instance (Name: MS2005). Is it some kind of limitation of the SqlClient library for the compact framework?
I am developing an application for a Pocket PC (PPC). I am using Visual studio 2005, and the Operating system on this PPC is Window Mobile 2003 SE. The followings are my codes to connect PPC with the database on my PC with sql server 2005. But when I cick the button1, the error with "SQL Server does not exist or access denied." Any ideas? Thanks a lot.
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Math
Imports System.Drawing
Imports System
Public Class Form1
Dim strConnection As String = "Server=localhost;Integrated Security=SSPI;database=AdventureWorks"
Dim strQuery As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = "Hello, Clicking after."
ReadOrderData()
End Sub
Private Sub ReadOrderData()
Dim queryString As String = "select * from Person.Address where AddressID < '10'"
Using connection As New SqlConnection(strConnection)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
I have both vs2005 and vs2008 installed. I'm working with a .Net Compact Framework 3.5 Smart Device Project.
If I refrence the System.Data.SqlClient.dll (Version 3.0.3600.0 Runtime v2.0.50727) C:Program FilesMicrosoft SQL Server Compact Editionv3.5DevicesClientSystem.Data.SqlClient.dll
When I deploy the application I get an error ".Net Compact Framework v2.0 could not be found Please install it and run the setup again"
Studio is : Deploying 'C:Program FilesMicrosoft Visual Studio 8SmartDevicesSDKSQL ServerClientv2.0wce500ARMV4isql.ppc.wce5.armv4i.CAB'
We tested this on a PC without vs2005 and it seems to work fine.
I am trying to access my SQL Server database through SqlCeConnection:
cecon = new SqlCeConnection("Data Source=D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf");
cecon.Open();
I am getting the following error:
System.Data.SqlServerCe.SqlCeException was unhandled Message="The path is not valid. Check the directory for the database. [ Path = D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf ]" HResult=-2147467259 NativeError=25009 Source="SQL Server 2005 Mobile Edition ADO.NET Data Provider" StackTrace: at System.Data.SqlServerCe.SqlCeConnection.ProcessResults() at System.Data.SqlServerCe.SqlCeConnection.Open() at System.Data.SqlServerCe.SqlCeConnection.Open() at nddbpda.frmCeMain.frmCeMain_Load() at System.Windows.Forms.Form.OnLoad() at System.Windows.Forms.Form._SetVisibleNotify() at System.Windows.Forms.Control.set_Visible() at System.Windows.Forms.Application.Run() at nddbpda.Program.Main()
When I tried to get the path from which the database file is being accepted, I got a different path:
We are developing Microsoft SQL Server CE 2.0 Merge Replication Using .NET Compact Framework. There is need of sinhronizations between SQL 2005 Mobile Edition witch resides on Barcode terminal (Windows CE) and SQL 2005 Developer Edition (on Windows XP). Everything is done by the book. There is few lines of code that we are using: public bool Replicate() { bool ret = true; SqlCeReplication repl = null; try { // Instantiate and configure SqlCeReplication object repl = new SqlCeReplication(); string dbFile = ........ repl.InternetUrl = this.InternetUrl; repl.InternetLogin = this.InternetLogin; repl.InternetPassword = this.InternetPassword; repl.Publisher = this.Publisher; repl.PublisherDatabase = this.PublisherDatabase; repl.PublisherLogin = this.PublisherLogin; repl.PublisherPassword = this.PublisherPassword; repl.Publication = this.Publication; repl.Subscriber = this.Subscriber; repl.SubscriberConnectionString ="Data Source=" +dbFile; if (!System.IO.File.Exists(dbFile)) { repl.AddSubscription(AddOption.CreateDatabase); } repl.Synchronize(); } IIS is configured, but in log on the server we've got this error: 2007/08/09 15:33:02 Hr=80004005 ACK:Error for DistributorSessionID = 58 2007/08/09 15:33:02 Hr=80004005 The SQL statement failed to execute. [,,,SQL statement,,] 28560 Please give us posible solution of this problem, we have searched on forums but with no result. p.s. I'ts urgent
I am trying to access my SQL Server database through SqlCeConnection:
cecon = new SqlCeConnection("Data Source=D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf"); cecon.Open();
I am getting the following error:
System.Data.SqlServerCe.SqlCeException was unhandled Message="The path is not valid. Check the directory for the database. [ Path = D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf ]" HResult=-2147467259 NativeError=25009 Source="SQL Server 2005 Mobile Edition ADO.NET Data Provider" StackTrace: at System.Data.SqlServerCe.SqlCeConnection.ProcessResults() at System.Data.SqlServerCe.SqlCeConnection.Open() at System.Data.SqlServerCe.SqlCeConnection.Open() at nddbpda.frmCeMain.frmCeMain_Load() at System.Windows.Forms.Form.OnLoad() at System.Windows.Forms.Form._SetVisibleNotify() at System.Windows.Forms.Control.set_Visible() at System.Windows.Forms.Application.Run() at nddbpda.Program.Main()
When I tried to get the path from which the database file is being accepted, I got a different path:
The Compact Edition is so slow. A simple query takes 2 minutes to Prepare, or Excecute. The same query is very quick in ISQL.
Dell Axim. WM5. Database was created on the Desktop with Compact Edition libraries. Has needed indexes and is a select based off that index, and joins one other table which is also indexed on the join column.
Is SQL Mobile quicker ? I just wanted to be able to create a database without having to use replication to populate it, and the Compact Edition allowed that.
I am doing some technology research for a new app and was wondering about the desktop operating system support for SQL Server compact edition. This app has a PC component and a mobile component, and both need to be data enabled, with syncronization between the PC and the mobile device.
So it seems like SSCE would be a good fit. Just run the SSCE client on both the PC and the device. But in the system requirements for SSCE it only gives XP as a valid desktop OS...
Is that correct? Obviously, desktop platform support for a production app will need to be broader than just XP.
Will SSCE desktop run on Win98,Win2000,XP Home, and Vista?
Hi! I tried to save some image data, but it get truncated at 8000 (the table column is defined as Image). I then wrote a converter to try ntext-datatype instead, but it gets truncated at 4000.
The code uses only ADO entity framework for database access. Is there a way to store binary data larger than 8000 bytes? I am running SQL Compact 3.5 sp 1 BETA.
So I started an SQL CE database for use inside a mobile application. I used SSMS to create a .sdf file (because if I let Visual Studio do it, SSMS can't open it because it will be version 3.5).
The reason I wanted to use SSMS is because I wanted to be able to design the database in design view, and populate it with initial information for the application to use. That means adding tables and rows.
The problem is, SSMS doesn't seem to have a design view available when working with CE databases. It also doesn't seem to have a feature for adding rows into tables. It's essentially as useless as VS2008 for designing my mobile database. It only lets me add tables, and I can't even do that visually in design view. I have to use those cumbersome forms.
Is there any way to design a CE database in design view? And add rows of data into tables? It feels like I'm overlooking something.
Note: I dont need to subscribe or publish the database. The mobile application just needs to use the database as a repository.
I have recently downloaded Orcas beta VS product and had no previous version of VS before. The install went clean and I have been able to generate Window apps and web apps with very little issues; however, I have one issue with running a web app using the "view in browser" option for checking an aspx page for validity. If I use the default Northwind database provided and generate an aspx form using the "DataSet" toolbox widget, the tool prompts for the datasource etc. required to generate the required code. I can select the Northwind database and select the desired columns from one of the tables. Once completed, I build the project (clean build) and then select the "view in browser" option to verify the results. The result is an error page indicating a server error -> Failed to find or load the registered .Net Framework Data Provider.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Configuration.ConfigurationErrorsException: Failed to find or load the registered .Net Framework Data Provider.
I created on odbc connection to an iSeries(as400) box and was successfull in displaying the table on the webpage! I looked into the web.config file and it appears that all the required XML data is present. Any help would be appreciated as I am fairly green when it comes the .NET world.
User1 : have sql rights on database but dont have rights to login into windows User2 ; have rights to login into system but dont have access rights to database
Now I have windows application and i have logged into system with User2 and want to run windows application with the rights of User1. How can i achieve this.
Does anyone know if I have created a replication using SQL Server 2000 (sp3a), .Netframework 1.0 with Pocket pc Sql Server CE 2.0 will work or not in pocket pc windows mobile 5.0 environment (with the .netframework for pocket pc(netcf.core.ppc3.arm.cab) and sql ce file (sqlce.ppc3.arm.CAB) installed in pocket pc)?
I have it working in pocket pc Windows mobile 2003 version. But, after I tried to install the exact same cab files and system into Windows mobile 5.0, the replication fail.
As you all know, in Framework 2.0 on the desktop platform you have the convenient "abstract" Db* classes that can be used to write more generic code. For instance System.Data.SqlClient.SqlConnection inherits from System.Data.Common.DbConnection, and so forth. Now the docs clearly say that this applies to the corresponding classes in the Compact Framework. And i have seen this implied by other web searchs I've done. However this does not seem to be the case -- or, I'm missing something somewhere.
The following simple code on the desktop platform compiles OK:
using System.Data; using System.Data.Common; using System.Data.SqlClient; DbConnection conn = new SqlConnection();
However it doesn't compile in a compact framework project: "Cannot implicitly convert type 'System.Data.SqlClient.SqlConnection' to 'System.Data.Common.DbConnection'".
Reflector also indicates that the Compact Framework class doesn't inherit from DbConnection.
OK, so am I missing something here, or what was the reason that Microsoft did it differently??
Dear All, i have a question abt winCE 4.2 and SQL server CE. i am using VB.net of Visual Studio 2005 My platform is using a PDA with winCE 4.2 and SQL server CE. The Host program is using dbf files on desktop side.
I got a problem of how to sync / read the sql CE data from a windows application.
so, i wanna ask,
1. any method to access the data from winCE data by windows application? or can i convert the sdf file to windows readable files? or any others?
2. Can i use a MDB to sync with SQL server CE? can i synchronize the mobile device which has a SQL Server CE database with the Access database on the desktop?
last question, 3. is that windows CE .net 4.2 not support pocket access (cdb) anymore?
I wanted to install SQL Server 2005 Express Edition, instead of installing .Net Framework 2.0, I installed .Net Framework 3.5. When I tried to install SQL Server 2005 Express Edition I received the following error:
SQL_ERROR (-1) in OdbcStatement::execute_batch sqlstate=42000, level=16, state=2, native_error=7404, msg=[Microsoft][SQL Native Client][SQL Server]The server could not load DCOM. Error Code: 0x80071cec (7404) Windows Error Text: Source File Name: libodbc_statement.h Compiler Timestamp: Wed Jun 14 16:28:15 2006 Function Name: OdbcStatement::execute_batch@sysdbupg.sql@56 Source Line Number: 91
I then decided maybe I do need .net framework 2.0, but when I try to install it it says it's already included with the OS.
But the "Programs and Featuers" only list .Net Framework 1.1 and .Net Framework 1,1 Hotfix (KB92979).
I uninstalled .Net Framework 3.5 and tried to install .Net Framework 2.0 again, but it still says it's included in the OS.
After uninstalling .Net Framework 3.5, I tried to install SQL Server 2005 Express Edition, but still received the above error message.
Is .Net Framework 2.0 included with Windows Vista Home Edition?
If it is, any ideas in solving the Server 2005 Express Edition installation error?
Hi, I'm writing a windows application using VB.NET 2005 that must connect to Pocket PC via ActiveSync to read data from SQL Server CE. This is my code:
I have a windows mobile 5.0 application that syncronises with SQL Sever 2005 (Merge Replication). The replication works fine without SSL. But when using SSL it doesn't work .On the device i get an error
28037, A request to send data to the computer running IIS has failed.
I have created a a Wild Card Certificate (*.domain-name.net) using Microsoft Certificate Services (Stand Alone) and setup the replication website with replication virtual directory under it , in IIS, to use this certificate. The host header for the replication site is set to "sql.domain-name.net". I have binded the host headers to the port as well.
I can access the https://sql.domain-name.net/replication/sqlcesa30.dll from remote computer and device and it says Microsoft SQL Server Compact Edition Server Agent, that means it is setup correctly.
I have installed the certificate authority and its wild card certificate on the device Root Certificates. Now when I call repl.syncrhonise() from device .. it throws exception with error 28037, A request to send data to the computer running IIS has failed.
which i think means, it can't find the service url.
I am not sure what is the problem..something to do with Trust - SSL certificates... Is there any thing i am missing ?
I was able to do this on a Windows XP machine but I am not able to get this to work on a Windows 2003 Server machine.I am connecting to the Windows 2003 Server and MS SQL Express via remote desktop on the lan.This is what worked for me before:EXEC sp_grantlogin '4800X2ASPNET'USE MyDBEXEC sp_grantdbaccess '4800X2ASPNET'EXEC sp_addrolemember 'db_owner', '4800X2ASPNET'But for some reason now I am getting this error:Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49Windows NT user or group '4800X2ASPNET' not found. Check the name again.Msg 15401, Level 16, State 1, Line 1Windows NT user or group '4800X2ASPNET' not found. Check the name again.Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75User or role '4800X2ASPNET' does not exist in this database.I thought what I needed to add was the name of this pc that will connect remotely, but that doesn't seem to be working.What weird is the old copy of this query I used had the local pc as the computer name. If I exchange the computer name from the remote pc name to the local 2003 Server machine name, the query works fine. Although that still doesn't let me add connections via Web Developer Express without error. It doesn't make sense to me anyhows, how could I have used the local machine's name and not the remote machine's name to get this to work previously. So confused.Thank you in advance for help.
I was able to do this on a Windows XP machine but I am not able to get this to work on a Windows 2003 Server machine. I am connecting to the Windows 2003 Server and MS SQL Express via remote desktop on the lan.
This is what worked for me before: EXEC sp_grantlogin '4800X2ASPNET' USE MyDB EXEC sp_grantdbaccess '4800X2ASPNET' EXEC sp_addrolemember 'db_owner', '4800X2ASPNET'
But for some reason now I am getting this error: Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49 Windows NT user or group '4800X2ASPNET' not found. Check the name again. Msg 15401, Level 16, State 1, Line 1 Windows NT user or group '4800X2ASPNET' not found. Check the name again. Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75 User or role '4800X2ASPNET' does not exist in this database.
I thought what I needed to add was the name of this pc that will connect remotely, but that doesn't seem to be working. What weird is the old copy of this query I used had the local pc as the computer name. If I exchange the computer name from the remote pc name to the local 2003 Server machine name, the query works fine. Although that still doesn't let me add connections via Web Developer Express without error. It doesn't make sense to me anyhows, how could I have used the local machine's name and not the remote machine's name to get this to work previously. So confused.