Setting up connection string in ASP.NET to SQL SERVER - asp.net

I'm trying to set up a connecting string in my web.config file (Visual Studio 2008/ASP.NET 3.5) to a local server (SQL server 2008).
In my web.config, how and where do I place the connection string?
Here's what web.config file looks like right now: http://imwired.net/aspnet/Online_web.config

You can also use this, it's simpler. The only thing you need to set is "YourDataBaseName".
<connectionStrings>
<add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
Where to place the connection string
<?xml version='1.0' encoding='utf-8'?>
<configuration>
<connectionStrings>
<clear />
<add name="Name"
providerName="System.Data.ProviderName"
connectionString="Valid Connection String;" />
</connectionStrings>
</configuration>

For some reason I don't see the simple answer here.
Put this at the top of your code:
using System.Web.Configuration;
using System.Data.SqlClient;
Put this in Web.Config:
<connectionStrings >
<add
name="myConnectionString"
connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
and where you want to setup the connection variable:
SqlConnection con = new SqlConnection(
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

I found this very difficult to get an answer to but eventually figured it out. So I will write the steps below.
Before you setup your connection string in code, ensure you actually can access your database. Start obviously by logging into the database server using SSMS (Sql Server Management Studio or it's equivalent in other databases) locally to ensure you have access using whatever details you intend to use.
Next (if needed), if you are trying to access the database on a separate server, ensure you can do likewise in SSMS. So setup SSMS on a computer and ensure you can access the server with the username and password to that database server.
If you don't get the above 2 right, you are simply wasting your time as you cant access the database. This can either be because the user you setup is wrong, doesn't have remote access enabled (if needed), or the ports are not opened (if needed), among many other reasons but these being the most common.
Once you have verified that you can access the database using SSMS. The next step, just for the sake of automating the process and avoiding mistakes, is to let the system do the work for you.
Start up an empty project, add your choice of Linq to SQL or Dataset (EF is good but the connection string is embedded inside of an EF con string, I want a clean one), and connect to your database using the details verified above in the con string wizzard. Add any table and save the file.
Now go into the web config, and magically, you will see nice clean working connection string there with all the details you need.
{ Below was part of an old post so you can ignore this, I leave it in for reference as its the most basic way to access the database from only code behind. Please scroll down and continue from step 2 below. }
Lets assume the above steps start you off with something like the following as your connection string in the code behind:
string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";
This step is very important. Make sure you have the above format of connection string working before taking the following steps. Make sure you actually can access your data using some form of sql command text which displays some data from a table in labels or text boses or whatever, as this is the simplest way to do a connection string.
Once you are sure the above style works its now time to take the next steps:
1.
Export your string literal (the stuff in the quotes, including the quotes) to the following section of the web.config file (for multiple connection strings, just do multiple lines:
<configuration>
<connectionStrings>
<add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
{ The above was part of an old post, after doing the top 3 steps this whole process will be done for you, so you can ignore it. I just leave it here for my own reference. }
2.
Now add the following line of code to the C# code behind, prefrably just under the class definition (i.e. not inside a method). This points to the root folder of your project. Essentially it is the project name. This is usually the location of the web.config file (in this case my project is called MyProject.
static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");
3.
Now add the following line of code to the C# code behind. This sets up a string constant to which you can refer in many places throughout your code should you need a conString in different methods.
const string CONSTRINGNAME = "conString";
4.
Next add the following line of code to the C# code behind. This gets the connection string from the web.config file with the name conString (from the constant above)
ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];
5.
Finally, where you origionally would have had something similar to this line of code:
SqlConnection con = new SqlConnection(conString)
you will replace it with this line of code:
SqlConnection con = new SqlConnection(conString.ConnectionString)
After doing these 5 steps your code should work as it did before. Hense the reason you test the constring first in its origional format so you know if it is a problem with the connection string or if it is a problem with the code.
I am new to C#, ASP.Net and Sql Server. So I am sure there must be a better way to do this code.
I also would appreicate feedback on how to improve these steps if possible. I have looked all over for something like this but I eventually figured it out after many weeks of hard work. Looking at it myself, I still think, there must be an easier way.
I hope this is helpful.

it should be within the <configuration> node:
<connectionStrings >
<add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
</connectionStrings>
this site has more info on it:

Connection in WebConfig
Add the your connection string to the <connectionStrings> element in the Web.config file.
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com" providerName="System.Data.SqlClient" />
</connectionStrings>
In Class.Cs
public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}

in header
using System.Configuration;
in code
SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);

You can also use external configuration file to specify connection strings section, and refer that file in application configuration file like in web.config
Like the in web.config file:
<configuration>
<connectionStrings configSource="connections.config"/>
</configuration>
The external configuration connections.config file will contains connections section
<connectionStrings>
<add name="Name"
providerName="System.Data.ProviderName"
connectionString="Valid Connection String;" />
</connectionStrings>
Modifying contents of external configuration file will not restart the application (as ASP.net does by default with any change in application configuration files)

If you want to write connection string in Web.config then write under given sting
<connectionStrings>
<add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
providerName="System.Data.SqlClient" />
</connectionStrings>
OR
you right in aspx.cs file like
SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");

You can put this in your web.config file connectionStrings:
<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>

You can use following format:
<connectionStrings>
<add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
Most probably you will fing connectionstring tag in web.config after <appSettings>
Try out this.

You can try this. It is very simple
<connectionStrings>
<add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>

Try this for your connection string.
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
User ID=myDomain\myUsername;Password=myPassword;

I JUST FOUND!!
You need to put this string connection and point directly to your database.
Same case on server.
"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"
It works!! :)

Store connection string in web.config
It is a good practice to store the connection string for your application in a config file rather than as a hard coded string in your code. The way to do this differs between .NET 2.0 and .NET 3.5 (and above). This article cover both.
https://www.connectionstrings.com/store-connection-string-in-webconfig/

Create a section called <connectionStrings></connectionStrings> in your web.config inside <configuration></configuration> then add different connection strings to it, for example
<configuration>
<connectionStrings>
<add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
</connectionStrings>
</configuration>
Here's a list of all the different connection string formats https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

Related

Visual Studio: SqlDataSource not seeing ConnectionString

I'm trying to add an SqlDataSource for use with a GridView, however, when I try to configure the datasource and select my connection string there are no options. If I try to 'Add new connection' this also does not work. I also tried adding a second connection string, it does not pick this up either.
The connection string is working as I'm using it successfully on another page (just not with an SqlDataSource).
My web.config is:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=CAD136\SQLEXPRESS;Initial Catalog=FDATA2;Integrated Security=True" />
<add name="DefaultConnection2" connectionString="Data Source=CAD136\SQLEXPRESS;Initial Catalog=FDATA2;Integrated Security=True" />
</connectionStrings>
I guess it should be [] brackets instead of ():
String ConString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString
Solved it, just added the connection string manually in the code view.

passwords for web.config in development and production [duplicate]

I'm trying to set up a connecting string in my web.config file (Visual Studio 2008/ASP.NET 3.5) to a local server (SQL server 2008).
In my web.config, how and where do I place the connection string?
Here's what web.config file looks like right now: http://imwired.net/aspnet/Online_web.config
You can also use this, it's simpler. The only thing you need to set is "YourDataBaseName".
<connectionStrings>
<add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
Where to place the connection string
<?xml version='1.0' encoding='utf-8'?>
<configuration>
<connectionStrings>
<clear />
<add name="Name"
providerName="System.Data.ProviderName"
connectionString="Valid Connection String;" />
</connectionStrings>
</configuration>
For some reason I don't see the simple answer here.
Put this at the top of your code:
using System.Web.Configuration;
using System.Data.SqlClient;
Put this in Web.Config:
<connectionStrings >
<add
name="myConnectionString"
connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
and where you want to setup the connection variable:
SqlConnection con = new SqlConnection(
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
I found this very difficult to get an answer to but eventually figured it out. So I will write the steps below.
Before you setup your connection string in code, ensure you actually can access your database. Start obviously by logging into the database server using SSMS (Sql Server Management Studio or it's equivalent in other databases) locally to ensure you have access using whatever details you intend to use.
Next (if needed), if you are trying to access the database on a separate server, ensure you can do likewise in SSMS. So setup SSMS on a computer and ensure you can access the server with the username and password to that database server.
If you don't get the above 2 right, you are simply wasting your time as you cant access the database. This can either be because the user you setup is wrong, doesn't have remote access enabled (if needed), or the ports are not opened (if needed), among many other reasons but these being the most common.
Once you have verified that you can access the database using SSMS. The next step, just for the sake of automating the process and avoiding mistakes, is to let the system do the work for you.
Start up an empty project, add your choice of Linq to SQL or Dataset (EF is good but the connection string is embedded inside of an EF con string, I want a clean one), and connect to your database using the details verified above in the con string wizzard. Add any table and save the file.
Now go into the web config, and magically, you will see nice clean working connection string there with all the details you need.
{ Below was part of an old post so you can ignore this, I leave it in for reference as its the most basic way to access the database from only code behind. Please scroll down and continue from step 2 below. }
Lets assume the above steps start you off with something like the following as your connection string in the code behind:
string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";
This step is very important. Make sure you have the above format of connection string working before taking the following steps. Make sure you actually can access your data using some form of sql command text which displays some data from a table in labels or text boses or whatever, as this is the simplest way to do a connection string.
Once you are sure the above style works its now time to take the next steps:
1.
Export your string literal (the stuff in the quotes, including the quotes) to the following section of the web.config file (for multiple connection strings, just do multiple lines:
<configuration>
<connectionStrings>
<add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
{ The above was part of an old post, after doing the top 3 steps this whole process will be done for you, so you can ignore it. I just leave it here for my own reference. }
2.
Now add the following line of code to the C# code behind, prefrably just under the class definition (i.e. not inside a method). This points to the root folder of your project. Essentially it is the project name. This is usually the location of the web.config file (in this case my project is called MyProject.
static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");
3.
Now add the following line of code to the C# code behind. This sets up a string constant to which you can refer in many places throughout your code should you need a conString in different methods.
const string CONSTRINGNAME = "conString";
4.
Next add the following line of code to the C# code behind. This gets the connection string from the web.config file with the name conString (from the constant above)
ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];
5.
Finally, where you origionally would have had something similar to this line of code:
SqlConnection con = new SqlConnection(conString)
you will replace it with this line of code:
SqlConnection con = new SqlConnection(conString.ConnectionString)
After doing these 5 steps your code should work as it did before. Hense the reason you test the constring first in its origional format so you know if it is a problem with the connection string or if it is a problem with the code.
I am new to C#, ASP.Net and Sql Server. So I am sure there must be a better way to do this code.
I also would appreicate feedback on how to improve these steps if possible. I have looked all over for something like this but I eventually figured it out after many weeks of hard work. Looking at it myself, I still think, there must be an easier way.
I hope this is helpful.
it should be within the <configuration> node:
<connectionStrings >
<add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
</connectionStrings>
this site has more info on it:
Connection in WebConfig
Add the your connection string to the <connectionStrings> element in the Web.config file.
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com" providerName="System.Data.SqlClient" />
</connectionStrings>
In Class.Cs
public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}
in header
using System.Configuration;
in code
SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);
You can also use external configuration file to specify connection strings section, and refer that file in application configuration file like in web.config
Like the in web.config file:
<configuration>
<connectionStrings configSource="connections.config"/>
</configuration>
The external configuration connections.config file will contains connections section
<connectionStrings>
<add name="Name"
providerName="System.Data.ProviderName"
connectionString="Valid Connection String;" />
</connectionStrings>
Modifying contents of external configuration file will not restart the application (as ASP.net does by default with any change in application configuration files)
If you want to write connection string in Web.config then write under given sting
<connectionStrings>
<add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
providerName="System.Data.SqlClient" />
</connectionStrings>
OR
you right in aspx.cs file like
SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");
You can put this in your web.config file connectionStrings:
<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
You can use following format:
<connectionStrings>
<add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
Most probably you will fing connectionstring tag in web.config after <appSettings>
Try out this.
You can try this. It is very simple
<connectionStrings>
<add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>
Try this for your connection string.
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
User ID=myDomain\myUsername;Password=myPassword;
I JUST FOUND!!
You need to put this string connection and point directly to your database.
Same case on server.
"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"
It works!! :)
Store connection string in web.config
It is a good practice to store the connection string for your application in a config file rather than as a hard coded string in your code. The way to do this differs between .NET 2.0 and .NET 3.5 (and above). This article cover both.
https://www.connectionstrings.com/store-connection-string-in-webconfig/
Create a section called <connectionStrings></connectionStrings> in your web.config inside <configuration></configuration> then add different connection strings to it, for example
<configuration>
<connectionStrings>
<add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
</connectionStrings>
</configuration>
Here's a list of all the different connection string formats https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

How to set the connection string from app.config please

I have done till this and i don't know how to call the connection string into my console application from app.config
<add name="VirgoPlaza"
connectionString="Data Source=JEAN-DANIEL\SQLEXPRESS;Initial Catalog=VirgoPlaza;Integrated Security=True"
providerName="System.Data.SqlClient" />
Can someone help please?
First add reference to System.Configuration. In Solution explorer, right click on References, Add References.
Add reference to System.Configuration Manager.
Then access the connection string like:
var connectionStrings = System.Configuration
.ConfigurationManager.ConnectionStrings;
var yourConnectionString = connectionStrings["VirgoPlaza"];
Assuming you have stored connection string in App.Config like:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<clear />
<add name="VirgoPlaza" connectionString="Data Source=JEAN-DANIEL\SQLEXPRESS;Initial Catalog=VirgoPlaza;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
VB.Net equivalent would be:
Dim Cons As String = System.Configuration
.ConfigurationManager
.ConnectionStrings("VirgoPlaz").ConnectionString
You may see: Connection Strings and Configuration Files
I suppose that you have your connection string defined inside this block of you app.config
<connectionStrings>
<add name="VirgoPlaza"
connectionString="Data Source=JEAN-DANIEL\SQLEXPRESS;Initial Catalog=VirgoPlaza;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
If this is the case then you retrieve the string from the app.config using
Dim cnString = ConfigurationManager.ConnectionStrings("VirgoPlaza").ConnectionString
A quick cheat is use your server explorer to connect, and then copy the connection string from there. Alternatively just use the new entity framework and you can do it via a wizard as well.
EDIT: Ok, it seems you have the connection string now - however does this mean that you cant connect, could never connect or does it mean you are just stuck making it work in general?

Identity Connection string, from local to host

So I have the following in my local web.config file:
<connectionStrings>
<add name="orangefreshConnectionString1" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\orangefresh.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
<add name="orangefreshEntities" connectionString="metadata=res://*/App_Code.Orangefresh.csdl|res://*/App_Code.Orangefresh.ssdl|res://*/App_Code.Orangefresh.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\orangefresh.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
I uploaded my website to my host, created my database and attached the necessary files to it (the mdf file and the log file), running a query shows the database has all the right data and is working fine.
The host has given me the following connection string:
workstation id=orangefresh.mssql.somee.com;packet size=4096;user id=xxxx;pwd=xxxx;data source=orangefresh.mssql.somee.com;persist security info=False;initial catalog=orangefresh
(I blacked out the user/pass details)
This connection string, I'm guessing is the to replace the local "orangefreshConnectionString1" connection string, which I've done. Now I'm left wondering what to replace my Identity connection string with, the "orangefreshEntities" which makes use the Entity Framework.
This obviously results in error on the pages that make use of ADO, all the other pages work fine it seems. Any ideas on what to do with the Entity connection string?
Inside orangefreshEntities, you have a reference to connection string="data source=.\SQLEXPRESS;...
I would change that part with the new connection string.
For the rest you are good to go. Path to the csdl, msl and ssdl will not change.
Fixed:
<add name="orangefreshEntities" connectionString="metadata=res://*/App_Code.Orangefresh.csdl|res://*/App_Code.Orangefresh.ssdl|res://*/App_Code.Orangefresh.msl;provider=System.Data.SqlClient;provider connection string="workstation id=orangefresh.mssql.somee.com;packet size=4096;user id=xxxx;pwd=xxxx;data source=orangefresh.mssql.somee.com;persist security info=False;initial catalog=orangefresh"" providerName="System.Data.EntityClient" />
the trick was putting the connection string in between the $quot marks.

Sql server express and connection string in web.config

i have connection string stored in web.config file but it is giving me the error.
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DbProduct.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
where is the bug in the connection string. i have stored my db DbProduct.mdf in app_data folder. i have never use SQLEXPRESS. so i need guide line. thanks
this AttachDbFilename=|DataDirectory|\DbProduct.mdf
should be AttachDbFilename=|DataDirectory|DbProduct.mdf
You don't need to add \
Have a look at this Using connection strings from web.config in ASP.NET v2.0

Resources