Click here to Skip to main content
15,867,453 members
Articles / Database Development / SQL Server

SQL Server CE Query Tool

Rate me:
Please Sign up or sign in to vote.
4.83/5 (63 votes)
9 Sep 2011CPOL6 min read 416.5K   23.5K   168   140
User friendly query designer and data manipulation tool for SQL Server CE

CEQuery-Installer- Click to enlarge image

Introduction

CEQuery was written in C# with the help of the Visual Studio 2008 platform. The new version has been upgraded to VS2010. SQL CE version 4 has been supported in this release. Some of the features of this tool are described below:

  • User is able to create a CE database. If the schema is provided, the tool is able to create the tables and columns.
  • User is able to overview an existing CE database [open with CEQuery by double click on sdf files] with its table and column structure in tree format.
  • User can design a query by dragging and dropping tables and columns from the database tree. The query pane in the tool is able to hold multiple queries provided that only one of those queries is active [as SQL Server CE engine does not support multiple queries in a single statement]. The tool is able to handle multiple query panes in the form of tabs. The query designer of the tool is able to highlight the keywords. The tool is able to handle the execution of the user's selected query.
  • User can manipulate [Insert/Update/Delete] records in a selected table.
  • User is able to generate scripts from a single table or multiple selected tables. [Both for SQL CE andr SQL Server.]
  • User is able to open multiple SQL Server CE files simultaneously.
  • User is able to convert a SQL Server database to an SDF file with schema and data.
  • User is able to change password of a SQL CE database. The tool is now capable of handling a database with no password.
  • User is able to Design CE Tables with Visual Interface.
  • User is able to Design Query with Visual Interface.
  • User is able to execute DB related operations like Validate, Repair, Compact, etc.
  • User is able to Export Query Result.

Background

In one of my projects, I have to use SQL Server CE database rigorously as the application interacts with the local version of the SQL Server CE file for displaying and manipulating data. SQL Server CE 3.5 version has been used in the application. The application is built on the Visual Studio 2005 platform with the support of .NET Framework 2.0. I was initially faced with some problem for querying the SQL Server CE files. Following are the reasons for creating a separate tool for querying a CE database:

  • SQL Server 2005 Management Studio does not support querying SQL Server CE 3.5 or SP1 database for displaying contents and querying data.
  • There are no free tools for querying a CE database available on the internet.
  • The only option to view the content of a CE database file is to install VS 2008 which has built in support for viewing and querying a CE database. But the UI provided for querying a CE database in Visual Studio 2008 is not a user friendly one. We need to type hell lot of things for querying a table. Users who are using SQL Server Management Studio will be very uncomfortable with Visual Studio 2008 for querying a CE database.

So to manage the queries for a CE database, the concept of writing a new tool comes to mind. As SQL Server CE architecture is completely written in C#, there should not be any problem to write a small new tool in a short time period. The main aspects of the tool are as follows:

  • The tool should be able to view the table and column structure in a CE database.
  • User should be able to design a query in less time like dragging and dropping table names and column names in the query pane from the database tree like in SQL Server Management Studio.
  • The tool should be able to create a new blank CE database. If a schema file is provided, the tool should be able to create tables and columns in the database.
  • The user should manipulate data [like Insert/Update/Delete] in any table from the tool.
  • The user should generate a script for an individual table as well as the whole database.
  • The user should be able to place multiple queries in a single query pane. Also she/he should be able to use multiple query panes.
  • The query editor should highlight the keywords in the query so that the user should feel like using SQL Server Management Studio.

Using the Code

A brief description of how to use the article or code has been provided in the help [CEQuery-Help.zip] file attached with this article.

Points of Interest

The following articles were very helpful in terms of learning for me:

This version has also been published in CodePlex. For the codebase of this application please refer to Codeplex Source Safe. Please note the following:

  • For "CEQuery v6 for SQL Server CE 3.5", user does not need to install SQL Server CE 3.5 SP2 separately. Setup.exe will install SQL Server CE 3.5 SP2 if it is not installed. This is targeted at all CPUs.
  • For "SQL Server CE 4.0 ", user needs to install SQL CE 4.0 separately based on the x86 or x64 version of SQL Server CE 4.0. This is targeted at all CPUs.

Improvement in the Latest Version

The latest version of CEQuery has some enhancements as well as bug fixes. The suggestions from users have been the keen interest for posting the new release. Also a new version of codebase and installer which point to SQL Server CE 4 has been attached here with the same functionality. For the CE4 installer, the user does not have to install CE4 separately.

Enhancements

  • New: Enhanced SQL Editor with Undo and Redo
  • New: Export SQL Server database with Windows Authentication support
  • New: Visual Table Editor
  • New: Visual Key Editor
  • New: Visual Query Designer
  • New: Validate and Repair DB
  • New: Compact and Shrink DB
  • New: Automatically upgrades old version database to CE4.
  • New: Double click to open SDF file in CEQuery. This feature has been provided by "Bjørn"

Bug Fixes

  • Bug 1: Bug fix for Byte Array pointed out by "Digitalbeach"
  • Bug 2: Bug Fix for IDENTITY attribute pointed out by "Tony Vaughan"
  • Bug 3: Bug fix for NVARCHAR length out by "John C"

History

  • 08th September, 2011: Updated code base and installer
  • 21st March, 2011: Updated code base and installer
  • 28th February, 2011: Updated code base and installer
  • 30th April, 2009: Updated code base and installer
  • 27th April, 2009: Third release
  • 18th March, 2009: Second release
  • 16th February, 2009: First release

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralRe: Error: Unable to load native components of SQL Server Compact Pin
_awatts5-Oct-11 6:31
_awatts5-Oct-11 6:31 
GeneralRe: Error: Unable to load native components of SQL Server Compact Pin
Member 9622-Mar-12 10:48
Member 9622-Mar-12 10:48 
AnswerRe: Error: Unable to load native components of SQL Server Compact Pin
Member 9622-Mar-12 10:47
Member 9622-Mar-12 10:47 
SuggestionOpen via OpenWith... Pin
Bjørn5-Sep-11 3:38
Bjørn5-Sep-11 3:38 
GeneralRe: Open via OpenWith... Pin
ray_mayukh6-Sep-11 21:42
ray_mayukh6-Sep-11 21:42 
GeneralMy vote of 5 Pin
ckohler17-May-11 6:54
ckohler17-May-11 6:54 
GeneralRe: My vote of 5 Pin
ray_mayukh17-May-11 19:06
ray_mayukh17-May-11 19:06 
GeneralSimply Great! and Lightweight Pin
ckohler17-May-11 6:39
ckohler17-May-11 6:39 
I've got to give you credit. This is very well done. I like it because it is so lightweight compared to alternatives such as SSMSE I've only seen a few unhandled exceptions, like when trying to drag to reorder columns in the Graphical Query Designer. It doesn't like that.

I ran across this because I was looking for a password reset tool for SDF files that could handle both subscriptions as well as the core DB protection. It doesn't appear that you have this feature. I would like to suggest that you add the ability to reset the __sysMergeSubscription and __sysMergeSubscriptionProperties system tables using the SqlCeReplication class. I do this in some of my software, but I wanted a general utility to do it as well.

In general this functionality could:
* Run Sync
* Reset the Subscription
* Reset the password for the subscription
(required when moving a CE db to another box because of machine key encryption)
* Reinitialize the Subscription
* Delete the Subscription

Just a suggestion that could round out your tools functionality. I'll be creating a tool to do just this part if I can't find an alternative and will post to Code Project. If I get it done soon I'll repost a message and you can feel free to incorporate the code into your project if you choose.

Thanks,
Chris
GeneralRe: Simply Great! and Lightweight Pin
ray_mayukh17-May-11 19:05
ray_mayukh17-May-11 19:05 
GeneralExport from SQL server: Nvarchar(500) turned into NTEXT? [modified] Pin
Member 9615-Apr-11 8:32
Member 9615-Apr-11 8:32 
GeneralRe: Export from SQL server: Nvarchar(500) turned into NTEXT? Pin
ray_mayukh17-Apr-11 12:03
ray_mayukh17-Apr-11 12:03 
GeneralExcellent, one bug though Pin
Member 968-Apr-11 6:25
Member 968-Apr-11 6:25 
GeneralRe: Excellent, one bug though [modified] Pin
ray_mayukh8-Apr-11 8:37
ray_mayukh8-Apr-11 8:37 
GeneralMy vote of 5 Pin
d347hm4n8-Apr-11 4:08
d347hm4n8-Apr-11 4:08 
GeneralRe: My vote of 5 Pin
ray_mayukh8-Apr-11 8:32
ray_mayukh8-Apr-11 8:32 
Generalsdf exporting Pin
| Muhammad Waqas Butt |2-Apr-11 10:54
professional| Muhammad Waqas Butt |2-Apr-11 10:54 
GeneralRe: sdf exporting Pin
ray_mayukh3-Apr-11 9:25
ray_mayukh3-Apr-11 9:25 
GeneralMy vote of 5 Pin
The Techsmith28-Mar-11 10:30
The Techsmith28-Mar-11 10:30 
GeneralRe: My vote of 5 Pin
ray_mayukh28-Mar-11 23:49
ray_mayukh28-Mar-11 23:49 
GeneralSQL Server CE Query Tool Pin
quynyth21-Mar-11 6:41
quynyth21-Mar-11 6:41 
GeneralRe: SQL Server CE Query Tool Pin
ray_mayukh21-Mar-11 6:59
ray_mayukh21-Mar-11 6:59 
GeneralMy vote of 4 Pin
Slacker00714-Mar-11 6:56
professionalSlacker00714-Mar-11 6:56 
GeneralRe: My vote of 4 Pin
ray_mayukh14-Mar-11 7:50
ray_mayukh14-Mar-11 7:50 
GeneralFabulous Pin
Pedros7324-Feb-11 22:54
Pedros7324-Feb-11 22:54 
GeneralRe: Fabulous Pin
ray_mayukh25-Feb-11 0:55
ray_mayukh25-Feb-11 0:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.