2013-03-25 38 views
5

Ứng dụng C# của tôi sử dụng DataSetTableAdapters. Chúng được tạo ra dưới hình thức VS2008 GUI Tool.Phương pháp tốt nhất để xử lý chuỗi kết nối trong ứng dụng biểu mẫu cửa sổ là gì?

Ví dụ:

dự án Nhấp chuột phải -> Add New Item -> DataSet

Phương pháp này thêm một chuỗi kết nối tự động vào app.config.

Nhưng đây là phương pháp được gắn dây cứng cho chuỗi kết nối. Tôi muốn thay đổi chuỗi kết nối một cách dễ dàng. Nhưng khi tôi sử dụng tập hợp dữ liệu, thì chuỗi kết nối nhận được từ thuộc tính ứng dụng. Có giải pháp nào cho tình huống này không?

enter image description here

Đây là cửa hàng chuỗi kết nối của tôi trong Settings.Designer.cs tập tin

namespace WindowsFormsApplication2.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=SLCERT\\SQLEMK;Initial Catalog=TestDataBase;Integrated Security=True")] 
     public string TestDataBaseConnectionString { 
      get { 
       return ((string)(this["TestDataBaseConnectionString"])); // this is the connection string get from the dataset's 
      } 
     } 
    } 
} 

app.config chứa

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    </configSections> 
    <connectionStrings> 
     <add name="WindowsFormsApplication2.Properties.Settings.TestDataBaseConnectionString" 
      connectionString="Data Source=SLCERT\SQLEMK;Initial Catalog=TestDataBase;Integrated Security=True" 
      providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 
+0

Và những gì ứng dụng làm không phải là cách dễ dàng? – alerya

+2

điều gì có thể dễ dàng hơn chỉnh sửa app.config? –

+1

ứng dụng.config đi kèm với ứng dụng của bạn. xml của nó. có thể chỉnh sửa dễ dàng trong bất kỳ trình soạn thảo văn bản nào –

Trả lời

6

Tôi tin rằng bạn hỏi này, vì vậy rằng bạn không phải thay đổi thủ công giữa thử nghiệm cục bộ và máy chủ sản xuất/thử nghiệm.

Bạn có thể muốn nhìn vào How to: Transform Web.config When Deploying a Web Application Project

đó là khoảng web.config thay vì app.config nhưng nó là ý tưởng tương tự.

ps. chỉ dành cho VS 2010 trở lên

+0

Có! Tôi hỏi điều đó. Nhưng bây giờ ứng dụng web nó là Windows Form Application – Elshan

+0

:) tốt đoán sau đó. Thông tin thêm tại đây: http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/ hoặc tại đây http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx –

+0

Câu hỏi Cập nhật – Elshan

4

Ngoài đề xuất được cung cấp bởi JP Hellemons để thực hiện chuyển đổi cấu hình, có một số thứ khác bạn có thể làm, vì chỉ được hỗ trợ (nguyên bản) .NET 4.0. Bạn có thể thêm bất kỳ số lượng chuỗi kết nối nào vào phần <connectionStrings/> của tệp cấu hình, vì vậy hãy thêm "DebugConnectionString" và "ReleaseConnectionString" hoặc tương tự.

Bây giờ, để sử dụng chúng mà không cần can thiệp mỗi khi môi trường thay đổi, bạn có thể sử dụng dấu vết. Nói về địa phương trong Visual Studio bạn đang biên soạn với các thiết lập liên tục DEBUG và khi triển khai phát hành nó không có mặt, sau đó bạn có thể làm một cái gì đó như sau:

#if DEBUG 
    return ConfigurationManager.ConnectionStrings["DebugConnectionString"]; 
#else 
    return ConfigurationManager.ConnectionStrings["ReleaseConnectionString"]; 
#endif 
+0

Phương thức này OK, nhưng khi tôi DataSet được sử dụng, tôi muốn cấu hình lại mỗi lần trước khi phát hành (DataSet được tạo bởi công cụ GUI vs2008, sau đó nó sẽ tự động thêm chuỗi kết nối vào tập tin settings.cs) – Elshan

+0

Câu hỏi Cập nhật – Elshan

2

trong app.config

<configuration> 
<configSections> 
</configSections> 
<connectionStrings> 
    <add name="DBCS" connectionString="Data Source=|DataDirectory|\Database.sdf;password=Password" 
     providerName="Microsoft.SqlServerCe.Client.3.5" /> 
</connectionStrings> 

và truy cập nó như thế này

static string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString.ToString(); 

bao gồm

System.Configuration; 

namespace

+0

Điều này là phù hợp cho các đề xuất chung.Nhưng khi Tôi sử dụng DataSet (Dataset sử dụng công cụ GUI, VS tự động thêm chuỗi kết nối thông qua tập tin cài đặt. Tôi muốn thay thế một phần) – Elshan

+1

nếu bạn muốn sử dụng chuỗi kết nối trong app.config. tạo ra một lớp có được dữ liệu từ cơ sở dữ liệu lưu trữ nó trong lớp và gọi lớp để cư trú điều khiển như datagridview. – XTGX

Các vấn đề liên quan