这是我的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会员提供商,这是我的用户表结构:
在我最近提出的问题here Oded
帮助我试图用我的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会员提供商将以上显示的用户详细信息输入我的数据库。
答案 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)
我知道这不是最好的方法如果有人发现任何其他最佳解决方案,请告诉我。