Cómo insert datos en SQL Server

¿Cuál es el problema en mi encoding? No puedo insert datos en ms sql. Estoy usando C # como front-end y MS SQL como bases de datos …

name = tbName.Text; userId = tbStaffId.Text; idDepart = int.Parse(cbDepart.SelectedValue.ToString()); string saveStaff = "INSERT into tbl_staff (staffName,userID,idDepartment) " + " VALUES ('" + name + "', '" + userId +"', '" + idDepart + "');"; SqlCommand querySaveStaff = new SqlCommand(saveStaff); try { querySaveStaff.ExecuteNonQuery(); } catch { //Error when save data MessageBox.Show("Error to save on database"); openCon.Close(); Cursor = Cursors.Arrow; } 

Debe establecer la propiedad Conexión del object Comando y usar la consulta parametrizada en lugar del SQL codificado para evitar la inyección SQL .

  using(SqlConnection openCon=new SqlConnection("your_connection_String")) { string saveStaff = "INSERT into tbl_staff (staffName,userID,idDepartment) VALUES (@staffName,@userID,@idDepartment)"; using(SqlCommand querySaveStaff = new SqlCommand(saveStaff)) { querySaveStaff.Connection=openCon; querySaveStaff.Parameters.Add("@staffName",SqlDbType.VarChar,30).Value=name; ..... openCon.Open(); } } 

Creo que le falta pasar el object Connection a su object de command . y es mucho mejor si usa command y parameters para eso.

 using (SqlConnection connection = new SqlConnection("ConnectionStringHere")) { using (SqlCommand command = new SqlCommand()) { command.Connection = connection; // <== lacking command.CommandType = CommandType.Text; command.CommandText = "INSERT into tbl_staff (staffName, userID, idDepartment) VALUES (@staffName, @userID, @idDepart)"; command.Parameters.AddWithValue("@staffName", name); command.Parameters.AddWithValue("@userID", userId); command.Parameters.AddWithValue("@idDepart", idDepart); try { connection.Open(); int recordsAffected = command.ExecuteNonQuery(); } catch(SqlException) { // error here } finally { connection.Close(); } } } 
 string saveStaff = "INSERT into student (stud_id,stud_name) " + " VALUES ('" + SI+ "', '" + SN + "');"; cmd = new SqlCommand(saveStaff,con); cmd.ExecuteNonQuery();