SQL Server Compact/SQLite Toolbox add-in for Visual Studio. This add-in adds several features to help your embedded database development efforts: Scripting of tables and data, import from SQL Server and CSV files and much, much more.
This tool is an ESSENTIAL part of Visual Studio since Microsoft removed from Sql management Studio the support of SqlCE. Its value is unbelievable and we have only to thank Erik for his remarkable job. Thank you!
This is a fantastic extension. This has helped me several times in the past with migrating databases and with the added ability to migrate SQLite databases I can now do so much more with it. This extension also has the added benefit of being created by the very dedicated ErikEJ who is willing to work with his users to figure out any problem they may be having and to extend the extensions functionality to its full potential.
Microsoft has all but abandoned support for Sql Server Compact especially when it comes to the tooling, but this add-in makes up for that in spades. This tooling for SQL CE is miles above what Microsoft ever provided. I especially like the ability to import and export schema and data from a full SQL Server which is a huge time saver especially for testing components that support multiple providers.
It has been with disappointment that we've had to watch as Microsoft over the years has slowly and step-by-step dismantled support for SQLCE in Visual Studio (and SSMS/E as well). Their excellent small-footprint, low-overhead, file-based database has lost their attention; it's gone the way of the venerable FoxPro.
Enter ErikEJ and his suite of tools. He has saved the day. We can confidently continue with our SQLCE-based projects.
It's got a few minor quirks here and there; it's not quite to the level of a commercial product, but then... it's not a commercial product.
Erik is very attentive to any topic surrounding SQLCE. He can be readily found frequenting any of the many SQLCE discussion forums. He's always available for support questions, is very helpful and he replies quickly.
Most projects of this nature require us to choose between support, documentation and quality. With SQL Server Compact/SQLite Toolbox we can have all three.
I have downloaded and used SQL Server Compact/SQLite add-in for Visual Studio. The tool picks up where our buddies in Redmond (Microsoft) left off. I found his tool to be very intuitivewith a dash of ingenuity. An example would be importing data from a Comma Seperated Value (csv). Initially, I had one column to import the data. The tool is intuitive where the selection is available by right clicking the table. The ingenuity is where the csv will have to be modified to be used by the tool. Here is an example:
My file contains A,1 B,1 C,1 d,0
The table definition contain fields
(pk) TableID (indentity(1,1) not null letter (varchar(25) not null IsCapital (bit not null)
By modifying the file by placing the field names as a first row, helps with the import.
letter,IsCaptital A,1 B,1 C,1 d,0
Great Job Erik. As we say in Ohio,USA "U are da Man." Translated "You did a wonderful job in developing this tool. Much kudos goes out."
Very glad that there are people in the world that makes it easier for others ( like me ) to do software development. And they do it for free. You Erik is one of them, thank you very much for a super product and quick feedback.
Trying to open Top 200 Rows I got FormatException: String was not recognized as valid DateTime at ErikEJ.SqlCeToolbox.ToolWindows.ResultesetGrid.LoadData(String sqlText)
The connection string has DateTime Kind=Utc option. (The ServerVersion is 184.108.40.206)
Anyway thanks, I discover the extension just recently and I like it.
Thanks for your answer.
I did a more experiments with it. SQLiteStudio showed the raw values - it seems to be stored in unix format and somehow wrongly (I can’t figure why it is caused by infrastructure - I am using SQlite-net, SqLitePCL.raw dlls got through Nuget as the infrastructure, SQLiteConnection is constructed with storeDateTimeAsTicks = true as default setting.) . (e.g. stored 622159416000000000 value is interpreted as 18.7.1972 22:00:00 by the infrastructure).
Then I experimented with SQLiteStudio, to figure out the SQLite Toolbox is able to show date time stored as correct unix format. I cloned the original table structure to a different table, then insert one row through SQL INSERT statement and using function strftime('%s', 'now'.) Then using function Datetime(MyDateTypeColumn, 'unixepoch') in SQL SELECT statement showed it correctly. And of course the SQLiteStudio showed the value in raw format in the grid – an integer number (even for the original case, which was quite valuable for me).
I looked at SQLite Toolbox, Edit top 200 Rows, View Data as Report, Script as SELECT execution all raised the exception. Only using replacing MyDateTypeColumn Datetime (MyDateTypeColumn, 'unixepoch') in , Script as SELECT was successful.
Question (or kind of suggestion)from that all: What do you think, if the SQLite Toolbox, Edit top 200 Rows, View Data as Report, Script as SELECT execution shows raw values in grid for Datetime SQLite type by default (not doing any date time conversion) , like SQLiteStudio seems to do? (Or if have some setting which kind of implicit date time conversion is used for that with possibility of no conversion?)
I tried to use SQLite very recently, so I might miss something important. Then please excuse me if the suggestion sounds stupid to you.
1. Right click some table in the toolbox, and choose one of the "Script as..." menu items, and a new tab pops up with default script to get you started. I usually type "ctrl a" to select all, and then immediately type "s" because I plan to type "select foo from bar etc..." But what happens is it pops up the save-as dialog box. You need to close it and then it also hijacks the uppercase/lowercase "s" and "S" for some reason, so you need to close the tab and try again.
2. In VS tool windows, I don't have the "Properties" tool window open ever. I always close it because it takes up space and I don't use it. When I open VS (this only happens once, when you first open VS), I go to the tool window for the sqlce toolbox, I click the "+" to expand my db, click the "+" to expand the "Tables" node, it then automatically opens the "Properties" tool window, and switches to it. I just close it and forget about it, but it happens every time. Wonder why?
Thanks for reporting this, suggest you use this link for error reports: https://sqlcetoolbox.codeplex.com/WorkItem/Create - I have logged issue 1. Re 2 - you can disable this via the Settings dialog (DisplayObjectProperties)
In the next version, please consider adding a button "New" to the menu - the one which has open, save, save as, execute, execute + plan, etc...
Right now when I need a new window I must go into the toolbox, and right click something, and clear out the automatic stuff in the new window, and so on.
Would be easier with just a "new" button for a new blank window! :-)
Thanks for the great suggestion, this will be in the next daily (and release) - there already is a menu item to do this, but only on the database level named "Open SQL editor" - but I will add it to the Table context menu
Oh then maybe I'm doing something wrong? All I have in my menu is:
open, save, save as, execute, execute + plan, estimated plan, parse, search, ignore ddl errors...
I am referring to that menu that shows at the top of the editing tab. It has icons and text.
But there is no "new" window/tab button in there?
I'm trying to create a Linq2Sql DataContext on a SqlCe 4.0 database, but I'm getting an error stating 'Could not find SqlMetal location in registry'. I have verified that SqlMetal exists in the following location:
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools
so I'm guessing I must be missing a key entry, but I have no idea what I would need to enter into the registry to resolve this issue. Any thoughts?
So I've been digging through the registry looking for the keys that I think the toolkit is looking for and I've verified the existence of the following keys:
each of which has an InstallationFolder value that points to a folder in which I have verified taht there is a copy of SqlMetal.exe appears.
So I'm guessing there is a key that the toolkit
I'm using VS2012 pro if that's important.
I did an uninstall and updated to 220.127.116.11, but to no avail - still unable to locate the SQLMetal in the registry.
I checked my path variable and made sure that all three of the folders I listed above were specified, just in case that was the issue, but with no success.
Hi, I installed the tool, but cannot expand the database to see the tables, etc.
I'm using VS 2015 Community and created a database in toolbox and after created tables with code first. The database is there, but I cannot expand it and see the tables of the database.
You were right! I've created the DB through the toolbox and when the solution was built it created other DB in Debug folder, but until now I didn't know that. Now I pointed the toolbox to the correct .sdf file and all is OK.
Thanks very much for your hint!!!
I tried creating a project to test your tool. First, when I display the about box, I notice a bunch of 'no' (see http://i58.tinypic.com/2dv5p4k.jpg). I've already pressed 'Register DDEX Providers' button. Second, when I try to add a new datasource in my project to access a sqlite db file, your tool doesn't show up in the 'Choose provider' window. How to fix that ?
trying to get rid of my problem, I get an error, this time from YOUR tool: I chose Script Database from the menu and then Script Database schema. See http://i59.tinypic.com/2lsxgxs.jpg for the error. The db is a valid one though, it's been created by a video game and can be opened with any sqlite browser tool...
Hi, I was using C# 2010 with SQL Compact on an old laptop and recently bought a new laptop with WIndows 8 and installed Visual Studio 2015. The database program I developed on the old laptop doesn't run under VS 2015 since I don't have SQL Compact on it.
Is there some easy to find and understand how to get SQL CE on 2015? I seem to be in a tailspin trying to figure it out.
Also, this toolbox is a VS extension and can someone point me in the right direction to install this?
Thanks Ron R
To get SQL CE Installed, just install the required runtime as described here: https://sqlcetoolbox.codeplex.com/wikipage?title=Known%20Issues&referringTitle=Documentation - and then install VS 2015 Community (not Express), and then you can simply install the Toolbox from the "Tools, Extensions and Updates" menu
Anytime I want to add a LINQ to SQL for my SQL compact 3.5, I get this error message:
SQL Server Compact - Couldn't find SqlMetal in the expected location: bin\NETFX 4.0 Tools\sqlmetal.exe;
Can you help me?
Thank you in advance
I have found the location but SqlMetal.exe wasn't there at all:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 (The tool points to that file path location.)
1 - I uninstalled the extension and reinstalled it thinking that all the default files will be added; but no luck.
However I found other versions where the SqlMetal.exe already exists
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools
2 - How can I change the path so SQL Server Compact/SQLite Toolbox will point to one of the versions where the SqlMetal.exe already exists ?
Apologies if this has been answered elsewhere, but I wasn't able to find out after doing some web searching. I'm trying to insert into a .sdf database from an external CSV file. When I try the BULK INSERT command, it appears to not be supported.
SQL Server Compact gives me:
Error Code: 80040E14
Message : There was an error parsing the query. [ Token line number = 1,Token line offset = 1,Token in error = BULK ]
Minor Err.: 25501
Source : SQL Server Compact ADO.NET Data Provider
Num. Par. : 1
Num. Par. : 1
Err. Par. : BULK
What's the recommended way to do a bulk insert? I'm runnign version 4.3.0 on VS2015 Thanks!