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

Posted

技术标签:

【中文标题】如何将应用程序名称添加到 <appSettings/>?【英文标题】:How to add Application name to <appSettings/>? 【发布时间】:2012-01-31 08:05:47 【问题描述】:

这是我的 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 会员提供程序,这是我的用户表结构:

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

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

这就是我的意思。

我需要将该 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

谁能指出我哪里出错了。

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

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

【问题讨论】:

@Downvoter-而不是放-1,您能否提供一些信息,以便我尝试改进我的问题,以便您更好地理解它。 (没有投票)目前还不清楚您的实际问题是什么。您是否需要在 (winforms) 应用程序内部或在构建或部署应用程序时修改您的 app.config? 当我尝试创建新用户时部署我的应用程序时,值没有进入我的数据库,因为最近我在这里问过***.com/questions/8692584/… 现在提到了根据我的手动输入的应用程序路径HDI 会员提供商我需要在 app.config 文件中提及我的应用程序名称。 你的问题有点含糊。请改写你的帖子。使用 或 My.Settings。 @AVD-当然我会以清晰的视角再次发布。 【参考方案1】:

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

<appSettings>

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

</appSettings>

【讨论】:

【参考方案2】:

经过大量拉扯后,我自己弄清楚了问题,并找到了我以这种方式更改代码的解决方案:

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

并以这种方式添加另一个参数:

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

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

【讨论】:

【参考方案3】:

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

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

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

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

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

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

【讨论】:

以上是关于如何将应用程序名称添加到 <appSettings/>?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XSLT 将名称空间添加到我的 XML 的根元素?

Woocommerce如何将标题属性添加到迷你购物车上产品名称的锚标记

如何将原始数据框中的列添加到报废数据?

jQuery - 如何将验证相同的输入名称添加到规则方法中? [复制]

如何将标题名称添加到第一列[重复]

如何使用R将当前日期添加到Google工作表名称中?