Solved

C#, Database connection error

Posted on 2011-03-25
5
620 Views
Last Modified: 2013-12-17
Good Morning all,

I am writing a test program to connect a C# WinForm to a test database .SDF file. I have managed to populate the database and make it show up in a datagridview already but now I am trying to add data during runtime. At first I am hard coding the values to add but when I do it I get an error about the User ID. I am not sure what to code for it because when I created the database no user ID was defined only the password. Here is my code

 
SqlCeConnection sqlConnection1 = new SqlCeConnection();
            sqlConnection1.ConnectionString = "Data Source = C:\\Users\\smunsell\\Documents\\TestDB.sdf; User ID = ???; Password = Password";

            System.Data.SqlServerCe.SqlCeCommand cmd = new System.Data.SqlServerCe.SqlCeCommand();
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.CommandText = "INSERT [UserData] (ID, User, Status) VALUES ('12', 'Tim', 'Inactive')";
            cmd.Connection = sqlConnection1;

            sqlConnection1.Open();
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            sqlConnection1.Close();

Open in new window


Any ideas how to fix it or what I should put in my uer id? Screenshot of program attached. Error code as well.

screen.png
error.png
0
Comment
Question by:Pandemonium1x
  • 3
  • 2
5 Comments
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 35215678
I don't think you need to pass a user id for a CE connection string. Just remove it so your string becomes:
sqlConnection1.ConnectionString = "Data Source = C:\\Users\\smunsell\\Documents\\TestDB.sdf; Password = Password";

Open in new window

0
 
LVL 4

Author Comment

by:Pandemonium1x
ID: 35215925
I have thought of that too but if I remove it I get


There was an error parsing the query. [Tolen line number =1, Token line offset = 20, Token in error = User]
0
 
LVL 4

Author Comment

by:Pandemonium1x
ID: 35215958
Not sure if this helps but here is my DB tree too.
struct.png
0
 
LVL 52

Accepted Solution

by:
Carl Tawn earned 500 total points
ID: 35215960
I think it complaining because User is a reserved word, and it is referring to your query rather than the connection string.

Try changing:
cmd.CommandText = "INSERT [UserData] (ID, User, Status) VALUES ('12', 'Tim', 'Inactive')";

Open in new window

To:
cmd.CommandText = "INSERT [UserData] (ID, \"User\", Status) VALUES ('12', 'Tim', 'Inactive')";

Open in new window

0
 
LVL 4

Author Closing Comment

by:Pandemonium1x
ID: 35216024
You deserve a rank of "Jedi" my friend. Good answer...Thanks it worked!
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This script will sweep a range of IP addresses (class c only, 255.255.255.0) and report to a log the version of office installed. What it does: 1.)      Creates log file in the directory the script is run from (if it doesn't already exist) 2.)      Sweep…
Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question