我是一个新的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
,所以我想我已经成功地连接到数据库,因为没有错误可言。 但上面的代码不会打印出任何东西到屏幕上。
我有点迷路了,不知道是怎么回事。 有谁知道是怎么回事错在这里?
好吧,让我们来看看其中的一些行:
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
试着改变你的连接字符串以下
string cs = @"Data Source=.\;Initial Catalog=somedb;Integrated Security=SSPI;";