Невозможно вставить значение NULL в столбец UserId
Я получаю это исключение и не могу понять, почему: Cannot insert the value NULL into column 'UserId'
Это мой код:
<asp:TextBox ID="FirstNameBox" runat="server" />
<br />
<br />
<asp:TextBox ID="LastNameBox" runat="server" />
<asp:SqlDataSource
ID="InsertText"
runat="server"
ConnectionString="<%$ ConnectionStrings:DefaultConnection %>"
InsertCommand="INSERT INTO UserForm (UserId,FirstName,LastName) VALUES (@UserId,@FiName,@LaName)">
<InsertParameters>
<asp:ControlParameter Name="FiName" ControlID="FirstNameBox" PropertyName="Text" />
<asp:ControlParameter Name="LaName" ControlID="LastNameBox" PropertyName="Text" />
<asp:Parameter Name="UserId" />
</InsertParameters>
</asp:SqlDataSource>
Это то, что у меня есть в моем коде за файлом:
public void button1_Click(object sender, System.EventArgs e)
{
InsertText.Insert();
}
3 ответа
Я просто взял идентификатор пользователя и выполнил команду обновления.
Guid userGuid = (Guid)Membership.GetUser(User.Identity.Name).ProviderUserKey;
UserIdLabel.Text = userGuid.ToString();
В настоящее время вы настроили свою таблицу так, чтобы вы ДОЛЖНЫ указать значение для UserId. Если это не запланированное поведение, я бы предложил изменить столбец на SQL-сервере на автоинкрементный...
Например, это должно выглядеть так:
[UserId] INT IDENTITY (1, 1) NOT NULL
РЕДАКТИРОВАТЬ на основе комментариев:
Я установил в столбце UserId первичный и внешний ключи. Я установил UserId как GUID. Когда я проверил таблицу, UserId уже там. Я просто хочу добавить имя пользователя или фамилию.
Не уверен, в чем ваша проблема, сначала вы говорите о INSERT
Теперь вы говорите о настройке значений для существующей записи. Если хотите update
существующая запись, вам нужно сначала получить идентификатор и обновить значения соответственно
Пример команды SQL может выглядеть примерно так:
UPDATE UserForm SET FirstName = @FirstName, LastName = @LastName WHERE UserId = @UserId
Insert выполняет то, что говорит - вставляет новую запись в таблицу.
Вы не устанавливаете никакого значения для столбца userId. если это уже было установлено личность. Вы можете удалить идентификатор пользователя при вставке данных.