Пожалуйста, если вы хотите выполнить какую-нибудь команду sql, используйте параметризованный запрос. Например:
SqlCommand cmd = new SqlCommand(@"Update StudentReg
Set FirstName = @firstName,
LastName = @lastName,
Class = @class,
Password = @password
where
Id = @id", conn);
cmd.Parameters.AddWithValue("@id", (int)txtId.Text);
cmd.Parameters.AddWithValue("@firstName", txtfirstname.Text.Trim());
cmd.Parameters.AddWithValue("@lastName", txtlastname.Text.Trim());
cmd.Parameters.AddWithValue("@class", txtclass.Text.Trim());
cmd.Parameters.AddWithValue("@password", txtpassword.Text.Trim());
int n = cmd.ExecuteNonQuery();
Почему параметризованный запрос, потому что вы хотите избежать внедрения sql. Прочтите здесь: Параметризованные запросы
Изменить: я опоздал с ответом: D, как написал @ Isaí Hinojos в своем ответе, вы можете использовать этот подход в его примере:
cmd.Parameters.AddWithValue("@first", SqlDbType.VarChar).Value = "Jack";
где указывается тип данных в таблице, второй параметр в методе AddWithValue.