C#的LINQ to SQL连接字符串(新手)(C# Linq to SQL connection

2019-09-18 22:55发布

我是一个新的LINQ to SQL学习,这是我的第一个创建一个数据浏览器程序的尝试。 这个想法很简单,我想创建一个软件,它能够在数据库中查看表的内容。 而已。

我有一个问题,早已经在这里和我见过很多tutes和网上的文章,但我仍然无法修正错误。

这里是我的代码:

    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);
    }

当我试图检查db.connection.equals(null); 它返回false ,所以我想我已经成功地连接到数据库,因为没有错误可言。 但上面的代码不会打印出任何东西到屏幕上。

我有点迷路了,不知道是怎么回事。 有谁知道是怎么回事错在这里?

Answer 1:

好吧,让我们来看看其中的一些行:


var db = new DataClasses1DataContext(cs);

这是一个构造一个完全正常的和精细的呼叫。 由于DataContext的实现IDisposable,当你使用它的真正的,可以考虑使用using语句。

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();

不要这样做。 的DataContext将打开和关闭连接时,它需要。


foreach (var b in db.Mapping.GetTables())
  Console.WriteLine(b.TableName); 

嗯,也许是在映射没有桌子。 你是从服务器资源管理器拖放表到设计表面?

大多数人会质疑,而不是细读映射表。 考虑下面的代码,而不是:

foreach (var customer in db.Customer.Take(10))
{
  Console.WriteLine(customer.Name); 
}

下面是展示如何将表拖动到从服务器资源管理器的设计表面的视频:

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



Answer 2:

试着改变你的连接字符串以下

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


文章来源: C# Linq to SQL connection string (newbie)