It is failing because you have declared 'id' as string and you have been trying to insert it without single quote. Also there are illegal characters to escape in the string parameters. Would you like to get rid of these? Please continue to read...
There is a bigger issue in your code where you haven't used parameterized queries. This piece of code turning host application into a SQL Injection playground.
Please have a look at the following code:
int id=1;
string orgnr = "123123";
string companyName = "Test,company";
string connectionString = "Data Source= oraDB;User Id=;Password=;";
OracleConnection connection = new OracleConnection(connectionString);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = connection;
cmd.CommandText = "INSERT INTO VENDORS(ID, ORGNR, COMPANYNAME) VALUES (:1, :2, :3)";
cmd.Parameters.Add(new OracleParameter("1",
OracleDbType.Int32,
id,
ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("2",
OracleDbType.Varchar2,
orgnr,
ParameterDirection.Input));
cmd.Parameters.Add(new OracleParameter("3",
OracleDbType.Varchar2,
companyName,
ParameterDirection.Input));
int rowsUpdated = cmd.ExecuteNonQuery();
connection.Dispose();