Невозможно вставить значение NULL в столбец 'Title', таблица
У меня есть ListView, и я пытался отредактировать комментарии, сделанные пользователями, после чего он будет обновлен в моей базе данных. Однако я сталкиваюсь с этой ошибкой, когда нажимаю кнопку Обновить в своем listView. Где я ошибся?
сообщение об ошибке:
Cannot insert the value NULL into column 'Title', table. Column does not allow nulls. UPDATE fails. The statement has been terminated.
Ошибка Источника:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Мой код. cs:
MembershipUser currentUser = Membership.GetUser(); Guid currentUserId = (Guid)currentUser.ProviderUserKey; int i = e.ItemIndex; TextBox tb = ListView1.Items[i].FindControl("commentContentTextBox") as TextBox; string test = tb.Text; int CommentID = Convert.ToInt16(ListView1.DataKeys[i].Value); string connectionString = ConfigurationManager.ConnectionStrings["ASPNETDBConnectionString"].ConnectionString; SqlConnection myConnect = new SqlConnection(connectionString); string updateSQL = "UPDATE GenBook set Title=@Title, comment=@comment, package=@package, UserId=@UserId WHERE GenBookID = @GenBookID "; using (SqlConnection myConnection = new SqlConnection(connectionString)) { myConnection.Open(); SqlCommand myCommand = new SqlCommand(updateSQL, myConnection); myCommand.Parameters.AddWithValue("@GenBookID", GenBookID); myCommand.Parameters.AddWithValue("@Title", TextBox1.Text.Trim()); myCommand.Parameters.AddWithValue("@comment", TextBox2.Text.Trim()); myCommand.Parameters.AddWithValue("@UserId", currentUserId); myCommand.Parameters.AddWithValue("@package", package.Text.Trim()); myCommand.ExecuteNonQuery(); myConnection.Close(); ListView1.EditIndex = -1; ListView1.DataBind(); }
Kenneth Haugland
Есть ли у вас allow null в SQL server?
kellycx
Нет, только мой пакет может быть нулевым. Остальные я запрещаю им быть нулевыми.
[no name]
Делает текстовое поле textbox1 на самом деле содержит значение?
kellycx
Для редактирования комментариев я ограничиваю пользователя только редактированием собственного содержимого комментариев. Что касается названия, то они не имеют права вносить изменения.
[no name]
Я не думаю, что вы понимаете. Когда вы отлаживаете свой код, проходя через него с помощью отладчика, когда вы получаете ошибку, имеет ли Textbox1 значение? Мне кажется, что именно там вы должны искать, так как именно оттуда исходит ошибка.
kellycx
Извините, что не понял. Теперь я понимаю, что ты имеешь в виду. Я отладил свои коды, и TextBox1 на самом деле имеет значение. Они способны фиксировать значение в текстовом поле 1.