第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在.net中以編程方式設(shè)置連接字符串?

如何在.net中以編程方式設(shè)置連接字符串?

精慕HU 2019-11-13 15:35:55
我想以編程方式設(shè)置連接字符串,而絕對(duì)不更改任何配置文件/注冊(cè)表項(xiàng)。我有這段代碼,但不幸的是,它拋出了“配置為只讀”異常。ConfigurationManager.ConnectionStrings.Clear();string connectionString = "Server=myserver;Port=8080;Database=my_db;...";ConnectionStringSettings connectionStringSettings =   new ConnectionStringSettings("MyConnectionStringKey", connectionString);ConfigurationManager.ConnectionStrings.Add(connectionStringSettings);編輯: 問題是我有從配置讀取連接字符串的現(xiàn)有代碼。因此,手動(dòng)或通過資源設(shè)置配置字符串似乎不是有效的選項(xiàng)。我真正需要的是一種以編程方式修改配置的方法。
查看完整描述

3 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

我已經(jīng)在博客中的帖子中對(duì)此進(jìn)行了撰寫。訣竅是使用反射來戳值,以獲取對(duì)非公共字段(和方法)的訪問。


例如。


var settings = ConfigurationManager.ConnectionStrings[ 0 ];


var fi = typeof( ConfigurationElement ).GetField( "_bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic );


fi.SetValue(settings, false);


settings.ConnectionString = "Data Source=Something";


查看完整回答
反對(duì) 回復(fù) 2019-11-13
?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

我一直在尋找相同問題的答案,以允許用戶通過選擇本地SQL Server來更改單擊一次應(yīng)用程序中的連接字符串。


下面的代碼顯示了一個(gè)用戶窗體,該窗體與所有本地可用的SQL Server聯(lián)系并允許他們選擇一個(gè)。然后,它為該服務(wù)器構(gòu)造一個(gè)連接字符串,并從表單上的變量返回它。然后,代碼會(huì)修改配置文件并節(jié)省下來。


string NewConnection = "";

// get the user to supply connection details

frmSetSQLConnection frm = new frmSetSQLConnection();

frm.ShowDialog();

if (frm.DialogResult == DialogResult.OK)

{

    // here we set the users connection string for the database

    // Get the application configuration file.

    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

    // Get the connection strings section.

    ConnectionStringsSection csSection = config.ConnectionStrings;

    foreach (ConnectionStringSettings connection3 in csSection.ConnectionStrings)

    {

        // Here we check for the preset string - this could be done by item no as well

        if (connection3.ConnectionString == "Data Source=SQL204\\SQL2008;Initial Catalog=Transition;Integrated Security=True")

        {

             // amend the details and save

             connection3.ConnectionString = frm.Connection;

             NewConnection = frm.Connection;

             break;

        }

    }

    config.Save(ConfigurationSaveMode.Modified);

    // reload the config file so the new values are available


    ConfigurationManager.RefreshSection(csSection.SectionInformation.Name);


    return clsDBMaintenance.UpdateDatabase(NewConnection))

}


查看完整回答
反對(duì) 回復(fù) 2019-11-13
?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊

解決此問題的另一種方法是直接對(duì)集合進(jìn)行操作:


var settings = ConfigurationManager.ConnectionStrings;

var element = typeof(ConfigurationElement).GetField("_bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);

var collection = typeof(ConfigurationElementCollection).GetField("bReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);


element.SetValue(settings, false);

collection.SetValue(settings, false);


settings.Add(new ConnectionStringSettings("ConnectionStringName", connectionString));


// Repeat above line as necessary


collection.SetValue(settings, true);

element.SetValue(settings, true);


查看完整回答
反對(duì) 回復(fù) 2019-11-13
  • 3 回答
  • 0 關(guān)注
  • 517 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)