Как добавить имя приложения в? - PullRequest
1 голос
/ 01 января 2012

Это мой файл 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

И в моем недавнем вопросе здесь 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 ]

3 голосов
/ 01 января 2012

Есть лучший способ, используя следующие шаги:

1) Добавьте ссылку на System.Configuration в ваше приложение.

2) Добавьте следующий блок в файл app.config в разделе configuration:

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

3) Извлеките значение и используйте его, где необходимо, с помощью следующего кода (пример из показанного вами ответа):

param6.Value = System.Configuration.ConfigurationManager.AppSettings("ApplicationName")
1 голос
/ 01 января 2012

Добавьте раздел AppSettings в ваш web.config

<appSettings>

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

</appSettings>
0 голосов
/ 01 января 2012

Я сам разобрался с этой проблемой после долгих потягиваний волос и нашел решение, что я изменил свой код следующим образом:

 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)

Я знаю, что это не лучший способ. Если кто-нибудь найдет какое-либо другое лучшее решение, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...