i am a new linq to sql learner and this is my very first attempt to create a data viewer program. The idea is simple, i'd like to create a software that is able to view content of a table in a database. That's it.
I got an early problem here already and i have seen many tutes and articles online but I still cant fix the bug.
Here is my code:
static void Main(string[] args)
{
string cs = "Data Source=localhost;Initial Catalog=somedb;Integrated Security=SSPI;";
var db = new DataClasses1DataContext(cs);
db.Connection.Open();
foreach (var b in db.Mapping.GetTables())
Console.WriteLine(b.TableName);
Console.ReadKey(true);
}
When I tried to check db.connection.equals(null);
it returns false
, so i thought i have connected successfully to the database since there is no error at all. But the code above doesn't print anything out to the screen.
I kind of lost and don't know what's going on here. Does anyone know what is going wrong here?
Ok, let's look at some of these lines:
var db = new DataClasses1DataContext(cs);
This is a perfectly normal and fine call to a constructor. Since DataContext implements IDisposable, when you are using it for real, consider using the using statement.
using (var db = new DataClasses1DataContext(cs))
{
// do stuff with db here
} // when leaving the block, db is disposed - even in the case of an exception.
db.Connection.Open();
Don't do this. DataContext will open and close the connection when it needs to.
foreach (var b in db.Mapping.GetTables())
Console.WriteLine(b.TableName);
Hmm, maybe there are no tables in the mapping. Did you drag a table onto the designer surface from the server explorer?
Most people would query a table instead of perusing the mappings. Consider this code instead:
foreach (var customer in db.Customer.Take(10))
{
Console.WriteLine(customer.Name);
}
Here's a video showing how to drag a table onto the designer surface from the server explorer: