Как изменить имя пользователя в ASPNETDB.MDF

#c# #.net #asp.net #visual-studio

#c# #.net #asp.net #visual-studio

Вопрос:

Я выполняю некоторую практическую работу, и мое имя пользователя находится в автоматически созданной базе данных под названием ASPNET.DB

Мне нужно изменить значение поля имя пользователя, но я не знаю, как вызвать первичный ключ, если таблица (имя пользователя).

Это то, что я сделал:

 protected void brukEndringerButton_Click(object sender, EventArgs e)
    {
        string txtInput = navnTextBox.Text;        

        SqlDataAdapter adapter;
        DataSet dataset = new DataSet();
        SqlConnection conn = new SqlConnection("Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Trusted_Connection=True;User Instance=yes");

        String comm = "SELECT * FROM Informasjon";
        adapter = new SqlDataAdapter(comm, conn);
        SqlCommandBuilder commandBuild = new SqlCommandBuilder(adapter);
        adapter.Fill(dataset, "Informasjon");

        DataRow dr = dataset.Tables["Informasjon"].Rows[???????];

        dr["UserName"] = txtInput;

        adapter.Update(dataset, "Informasjon");
        conn.Close();

        infoLabel.Text = "Endringer som gjøres!";
    }
  

Немного о том, как мне нужно найти строку с заданным идентификатором пользователя, чтобы программа знала, какую строку необходимо обновить.
Я не знаю, как получить эти данные, единственное, что я могу вызвать, это

Пользователь.Identity.name;

Есть идеи, как я могу изменить этот столбец?

Комментарии:

1. Это то, что вы хотите делать постоянно или только в этот раз.. потому что, если это просто то, что вы не хотите делать автоматически, просто нажмите на значок мира с помощью молотка в верхней части обозревателя решений и отредактируйте его вручную

2. Да, я хочу делать это каждый раз, когда заполняю поле. Я знаю, что могу открыть базу данных и изменить значения вручную, мне нужно сделать это со страницы. (Это для домашнего задания)

Ответ №1:

Похоже, вы, возможно, используете asp.net поставщик членства. Если это так, вся необходимая информация есть прямо в документах:http://msdn.microsoft.com/en-us/library/system.web.security.membership.aspx

Нет необходимости работать напрямую с базой данных (при условии, что вы используете поставщика членства).

Комментарии:

1. Я не думаю, что вы можете изменить имя пользователя, кроме кодирования непосредственно в базе данных. Property or indexer 'System.Web.Security.MembershipUser.UserName' cannot be assigned to -- it is read only

Ответ №2:

Если вы хотите сделать это таким образом, попробуйте создать скрытое поле с предыдущим значением имени пользователя. Теперь вы можете добавить оператор Where в свой sql.

Или

Вы можете использовать MembershipService, чтобы получить MembershipUser, где имя пользователя = User.Identity.name

ProviderUserKey — это идентификатор пользователя.

Этого должно быть достаточно, чтобы вы отправились в путь, я не хочу давать вам слишком много, если это для домашней работы.

Надеюсь, это поможет