C#Linq到SQL连接字符串(新手)
我是sql学习者的新linq,这是我第一次尝试创建数据查看器程序。 这个想法很简单,我想创建一个能够查看数据库中表格内容的软件。 而已。
我已经在这里得到了一个早期的问题,我在网上看到了许多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); }
这是一个video,展示了如何从服务器资源管理器将表拖到设计器表面上:
尝试将您的连接字符串更改为以下
string cs = @"Data Source=.\;Initial Catalog=somedb;Integrated Security=SSPI;";