C# Linq to SQL connection string (newbie)

[亡魂溺海] 提交于 2019-12-07 23:56:07

问题


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?


回答1:


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:

http://www.youtube.com/watch?v=z9L11qrw9gk




回答2:


Try change your connection string to below

string cs = @"Data Source=.\;Initial Catalog=somedb;Integrated Security=SSPI;";


来源:https://stackoverflow.com/questions/11287079/c-sharp-linq-to-sql-connection-string-newbie

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!