Simpel: the field length you set in the DB is not big enough for the data you are supplying.
The default size for a VARCHAR or NVARCHAR column is normally 50 characters - if you try to INSERT or UPDATE a string with 51 characters the DB throws the error because it won't fit without it throwing away some of your data.
Either check your data length then truncate or re-enter it, or increase the column size in the DB.
But your table design could use some work: you should not store the same string in multiple rows. Instead you should have a second table which stores the ratings and a foreign key to that table in your Students table. You then use a JOIN to get human readable text when you need it for presentation.
And ... Never concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Always use Parameterized queries instead.
When you concatenate strings, you cause problems because SQL receives commands like:
SELECT * FROM MyTable WHERE StreetAddress = 'Baker's Wood'
The quote the user added terminates the string as far as SQL is concerned and you get problems. But it could be worse. If I come along and type this instead: "x';DROP TABLE MyTable;--" Then SQL receives a very different command:
SELECT * FROM MyTable WHERE StreetAddress = 'x';DROP TABLE MyTable;
Which SQL sees as three separate commands:
SELECT * FROM MyTable WHERE StreetAddress = 'x';
A perfectly valid SELECT
DROP TABLE MyTable;
A perfectly valid "delete the table" command
And everything else is a comment.
So it does: selects any matching rows, deletes the table from the DB, and ignores anything else.
So ALWAYS use parameterized queries! Or be prepared to restore your DB from backup frequently. You do take backups regularly, don't you?