Since the only numbers in there are trivial: "25" and "2048" it has to be the values you are trying to insert from your textboxes. So start by checking them against the datatypes in your database.
But don't do it that way! Do not 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. Use Parametrized queries instead.
Also, you should be disposing your connections and commands - they are scarse commodities, so they should not be kept longer than you need to.
Oh, and stop using the VS default names for controls: you may remember today that "textbox12" holds the user ID, but you won't in a coupe of weeks time when you need to maintain this. Call them somethign sensible: it makes your code easier to read, understand and maintain. It is also quicker to type, since intelisense can sort them out quicker for you...
using (OdbcConnection con = new ODbcConnection(strConnect))
{
con.Open();
using (OdbcCommand com = new OdbcCommand("INSERT INTO Company (ID,CompanyName) VALUES (@UID, @CON)", con))
{
com.Parameters.AddWithValue("@UID", tbUserID.Text);
com.Parameters.AddWithValue("@CON", tbCompanyName.Text);
com.ExecuteNonQuery();
}
}