.Net(1):Settings.settings

VS2008中设计.dbml文件时,如果选择“保存”“数据库连接字符串”,这些信息会存储在Propreties/Settings.settings.cs文件中。

想在发布的时候更改连接字符串,该如何做?其实,秘密都在app.config文件中.

VS2008在产生Settings.settings的同时,此文件中的信息已经存储在app.config,我们只要在修改config中对象的信息,就可以动态改变数据库连接字符串等内容。

如果要在Web项目中引用,发布的时候将dbml文件所在程序集生成的app.config文件信息拷贝到web.config文件中即可。

 

注意:*.dbml文件中也存在存储了连接字符串的信息,对VS2008在设计时进行支持。

更换dbml文件的连接字符串的步骤如下:设计器中选择dbml文件->属性窗口->连接,修改即可.

 

简单代码如下,只要仔细看,你能发现他们构成的规律

 

dbml的xml文件,注意 Connection 节点

<? xml version="1.0" encoding="utf-8" ?>
< Database  Name ="Database1"  Class ="DataClasses2DataContext"  xmlns ="http://schemas.microsoft.com/linqtosql/dbml/2007" >
  
< Connection  Mode ="AppSettings"  ConnectionString ="Data Source=server2003bak;Initial Catalog=MYTEST;User ID=sa"  SettingsObjectName ="WindowsFormsApplication1.Properties.Settings"  SettingsPropertyName ="ConnString"  Provider ="System.Data.SqlClient"   />
  
< Table  Name ="dbo.Table2"  Member ="Table2" >

 

 

Settings.settings.cs文件内容

namespace  WindowsFormsApplication1.Properties {
    
    
    [
global ::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [
global ::System.CodeDom.Compiler.GeneratedCodeAttribute( " Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator " " 9.0.0.0 " )]
    
internal   sealed   partial   class  Settings :  global ::System.Configuration.ApplicationSettingsBase {
        
        
private   static  Settings defaultInstance  =  ((Settings)( global ::System.Configuration.ApplicationSettingsBase.Synchronized( new  Settings())));
        
        
public   static  Settings Default {
            
get  {
                
return  defaultInstance;
            }
        }
        
        [
global ::System.Configuration.ApplicationScopedSettingAttribute()]
        [
global ::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [
global ::System.Configuration.SpecialSettingAttribute( global ::System.Configuration.SpecialSetting.ConnectionString)]
        [
global ::System.Configuration.DefaultSettingValueAttribute( " Data Source=server2003bak;Initial Catalog=MYTEST;User ID=sa;Password=123 " )]
        
public   string  ConnString {
            
get  {
                
return  (( string )( this [ " ConnString " ]));
            }
        }
    }
}

 

自动生成的app.config文件

 

<? xml version = " 1.0 "  encoding = " utf-8 " ?>
< configuration >
  
< configSections >
  
</ configSections >
  
< connectionStrings >
    
< add name = " WindowsFormsApplication1.Properties.Settings.ConnString "
      connectionString
= " Data Source=server2003bak;Initial Catalog=MYTEST;User ID=sa;Password=123 "
      providerName
= " System.Data.SqlClient "   />
  
</ connectionStrings >
</ configuration >
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
06-08 10:58:36.121 1815 1815 E AndroidRuntime: Process: com.android.settings, PID: 1815 06-08 10:58:36.121 1815 1815 E AndroidRuntime: java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.supplicant.STATE_CHANGE flg=0x10 (has extras) } in com.android.settings.m8settings.receiver.WifiReceiver@41c8a5c 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1830) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(Unknown Source:2) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:942) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:201) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.os.Looper.loop(Looper.java:288) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8061) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:703) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.wifi.SupplicantState.name()' on a null object reference 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at com.android.settings.m8settings.receiver.WifiReceiver.onReceive(WifiReceiver.java:46) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1820) 06-08 10:58:36.121 1815 1815 E AndroidRuntime: ... 9 more
最新发布
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值