#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 — это идентификатор пользователя.
Этого должно быть достаточно, чтобы вы отправились в путь, я не хочу давать вам слишком много, если это для домашней работы.
Надеюсь, это поможет