如何将应用程序名称添加到 <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如何将标题属性添加到迷你购物车上产品名称的锚标记