如何将应用程序名称添加到<appsettings>?</appsettings>

时间:2012-01-01 10:29:27

标签: vb.net winforms app-config

这是我的app.config文件,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
      <add key="Application Name" value="/MyApplication" />
    </appSettings>
  <connectionStrings>
     <add name="frmStartup.My.MySettings.HDIMembershipProviderConnectionString"
        connectionString="Data Source=.\sqlexpress;Initial Catalog=HDIMembershipProvider;Integrated Security=True"
        providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <membership defaultProvider="HDIMembershipProvider">
      <providers>
        <clear/>
        <add name="HDIMembershipProvider" type="MyApplication.HDIMembershipProvider, MyApplication"/>
      </providers>
    </membership>
  </system.web>
    <system.diagnostics>
        <sources>
            <!-- This section defines the logging configuration for My.Application.Log -->
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                    <!-- Uncomment the below section to write to the Application Event Log -->
                    <!--<add name="EventLog"/>-->
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
            <add name="FileLog"
                 type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 
                 initializeData="FileLogWriter"/>
            <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        </sharedListeners>
    </system.diagnostics>
</configuration>

我正在尝试使用HDI会员提供商,这是我的用户表结构:

enter image description here

在我最近提出的问题here Oded帮助我试图用我的Insert语句解决问题并重新修改它,我的数据库结构中有一个ApplicationName列我需要指定它。(因为它不应该是空值)

现在我需要添加我的应用程序名称,默认输入到数据库,就像我们为web.config做的那样。

这就是我的意思。

enter image description here

我需要将MyApplication添加到我的app.config文件中。

那我该怎么做?

这就是我尝试将用户详细信息输入数据库的方法,但它并没有影响单个值

 Try
            Dim connectionString As String = "Data Source=.\sqlexpress;Initial Catalog=HDIMembershipProvider;Integrated Security=True"
            Using cn As New SqlConnection(connectionString)
                cn.Open()
                Dim cmd As New SqlCommand()
                cmd.CommandText = "INSERT INTO Users ( Username, Password, Email, PasswordQuestion, PasswordAnswer) VALUES(@Username,@Password,@Email,@PasswordQuestion,@PasswordAnswer)"

                Dim param1 As New SqlParameter()
                param1.ParameterName = "@Username"
                param1.Value = txtUsername.Text.Trim()
                cmd.Parameters.Add(param1)

                Dim param2 As New SqlParameter()
                param2.ParameterName = "@Password"
                param2.Value = txtPassword.Text.Trim()
                cmd.Parameters.Add(param2)


                Dim param3 As New SqlParameter()
                param3.ParameterName = "@Email"
                param3.Value = txtEmail.Text.Trim()
                cmd.Parameters.Add(param3)

                Dim param4 As New SqlParameter()
                param4.ParameterName = "@PasswordQuestion"
                param4.Value = txtSecurityQuestion.Text.Trim()
                cmd.Parameters.Add(param4)

                Dim param5 As New SqlParameter()
                param5.ParameterName = "@PasswordAnswer"
                param5.Value = txtSecurityAnswer.Text.Trim()
                cmd.Parameters.Add(param5)

                cmd.Connection = cn
                cmd.ExecuteNonQuery()
                cn.Close()
            End Using
            Successlbl.show
            Successlbl.show.Text = "Regisration Success."
        Catch
            Errolbl.Show()
            Errolbl.Text = "Your account was not created.Please try again."
        End Try

任何人都可以指出我在哪里犯错误。

这是我进入数据库时​​得到的最终结果:

enter image description here

为了更简洁明了,我需要使用HDI会员提供商将以上显示的用户详细信息输入我的数据库。

3 个答案:

答案 0 :(得分:3)

使用以下步骤有更好的方法:

1)在您的应用程序中添加对System.Configuration的引用。

2)将以下块添加到configuration部分中的app.config文件中:

  <appSettings>
    <add key="ApplicationName" value="/MyApplication" />
  </appSettings>

3)检索值并使用以下代码在需要的地方使用它(示例中显示的答案):

param6.Value = System.Configuration.ConfigurationManager.AppSettings("ApplicationName")

答案 1 :(得分:1)

将AppSettings部分添加到您的web.config

<appSettings>

<add key="ApplicationName" value="/website1" />

</appSettings>

答案 2 :(得分:0)

在经过大量的拔毛之后,我已经找到了自己的问题并找到了解决方案,我已经用这种方式改变了我的代码:

 cmd.CommandText = "INSERT INTO Users ( Username,ApplicationName,Password, 
    Email, PasswordQuestion, PasswordAnswer) VALUES(@Username,@ApplicationName,@Password,
    @Email,@PasswordQuestion,@PasswordAnswer)"

以这种方式添加另一个Param:

 Dim param6 As New SqlParameter()
 param6.ParameterName = "@ApplicationName"
 param6.Value = txtApplicationName.Text.Trim()
 cmd.Parameters.Add(param6)

我知道这不是最好的方法如果有人发现任何其他最佳解决方案,请告诉我。