在新建Linq to sql时,会生成一个app.config的配置文件,此文件包含了连接到数据库的连接信息,但类库生成此文件之后却并不使用它,在编译之后生成的名称也跟随了类库的名称,如name.dll.config,我只是奇怪为何生成之后却不使用。
在做过几番手脚之后仍然没有成功,软件直接运行根本就找不到这个文件。忽然之间想到此文件只是类库的配置文件,如果要在程序的运行中使用,那么此文件应该为可执行文件的配置文件,也就是说名称应该与可执行文件相同,如exename.exe.config,之后再执行就可以了。
修改Linq中所生成的代码,原代码如下:
public TDataClassDataContext() : base(global::TransferDataClass.Properties.Settings.Default.TransferDataConnectionString, mappingSource) { OnCreated(); }
修改为:
public TDataClassDataContext() : base(global::System.Configuration.ConfigurationManager.ConnectionStrings["TransferDataClass.Properties.Settings.TransferDataConnectionString"].ConnectionString, mappingSource) { OnCreated(); }
配置文件的内容:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="TransferDataClass.Properties.Settings.TransferDataConnectionStri ng" connectionString="Data Source=(local)\sql2000;Initial Catalog=TData;Persist Security Info=True;User ID=sa;Password=" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>