OleDbConnection not found while using System.data namespace in code
System.Data
is the assembly you reference to in your project. It contains many namespaces within it, one of which is System.Data.OleDb
.
If you right-click on the System.Data
reference > View in Object Browser, you can browse for everything within the assembly. You can see in there that the OleDbConnection
class is contained within the System.Data.OleDb
namespace.
If you're unsure about where a class lives, always search in MSDN. This page would immediately tell you that OleDbConnection
lives in:
Namespace: System.Data.OleDb
Assembly: System.Data (in System.Data.dll)
Related videos on Youtube
Reshma
I am currently working in .Net environment. My field work comprises of C#, ASP.NET, WCF. I love programming. Even though I am novice I have indulge myself in learning as much as I can .Thanks to stack-overflow for making programming as a fun.
Updated on September 14, 2022Comments
-
Reshma over 1 year
In my code, I am using OleDbConnection. When I refer to System.Data, it gives me the error that OleDbConnection is not found. But when I refer to System.Data.OleDb namespace then it runs fine. Why is this error occurring? I checked for the reference via add reference path for System.Data and it exist.
Find the below code for better clearance:
using System.Data; public partial class Home : System.Web.UI.Page { OleDbConnection oledbconn; protected void Page_Load(object sender, EventArgs e) { } }
In above code, OleDbConnection oledbconn;---This line no 4 gives error that
Type or namespace OleDbConnection cannot be found
And now consider the following code,
using System.Data.OleDb; public partial class Home : System.Web.UI.Page { OleDbConnection oledbconn; protected void Page_Load(object sender, EventArgs e) { } }
Here the code works fine,
I know that adding OleDb to System.Data will resolve my issue but I want to know why does it gives error in first place even if I have referred to System.Data namespace,
According to my knowing, when I refer to System.Data, it indirectly refer to all his child elements like OleDb, SqlClient and all..isn't it?
-
Reshma about 8 yearsPlease refer to the question that I have edited, I know that System.Data.OleDb exist in System.Data but my question is even System.Data should work...isn't it?
-
NPras about 8 yearsUnfortunately no. The
using
directive should be followed by a namespace, and namespaces are not nested. E.g. If you want to use bothSystem.Diagnostics.Stopwatch
andSystem.IO.File
classes, you can not simply useusing System
. You have to specify bothusing System.Diagnostics;
andusing System.IO;
.