5

i trying to run query using C#, i am getting the following problem

An OLE DB Provider was not specified in the ConnectionString. An example would be, 'Provider=SQLOLEDB;

my code

string strConString = System.Configuration.ConfigurationManager.ConnectionStrings["WorkflowConnStr"].ConnectionString.ToString(); 
string sqlstr = "select * from table"        
OleDbConnection myConnection = new OleDbConnection(strConString);
try
     {myConnection.Open();}
catch (Exception err) 
     { System.Diagnostics.Debug.WriteLine(err.Message); }

OleDbCommand myCommand = new OleDbCommand(sqlstr, myConnection);
OleDbDataReader reader = myCommand.ExecuteReader();

web.config

<add name="WorkflowConnStr" connectionString="Data Source=Server;Initial Catalog=DBName;user id=usr;password=password" providerName="System.Data.OleDb.OleDbConnection"/>

any suggestion ?

Noora
  • 319
  • 3
  • 10
  • 26

2 Answers2

8

Try adding this to your connection string,

Provider=SQLNCLI10.1

So it would be;

<add name="WorkflowConnStr" connectionString="Data Source=Server;Initial Catalog=DBName;user id=usr;password=password;Provider=SQLNCLI10.1" providerName="System.Data.OleDb.OleDbConnection"/>
Mez
  • 4,666
  • 4
  • 29
  • 57
  • SQLNCLI10.1 is for SqlServer2008 and SQLNCLI11 for SqlServer2012 according to [this](http://stackoverflow.com/a/1499065/521554) link. – LosManos Aug 19 '15 at 09:45
1

Use SqlConnection instead of OleDbConnection.

Robert Columbia
  • 6,313
  • 15
  • 32
  • 40
Malek Tubaisaht
  • 1,170
  • 14
  • 16