You are mistaken if you think that using a DataSet and using parameters is an either/or situation. A DataSet is just an in-memory store of data. Parameters are a way to insert data values into an SQL statement. If you're using a DataSet to store data before inserting it into a database then you will invariably have to use parameters.

Note that a DataSet is unnecessary in this case. A DataSet doesn't actually contain any data. It simply contains DataTables. If your DataSet is only going to contain one DataTable and no DataRelations then it serves no purpose. You may as well just use a DataTable on its own, as I have demonstrated.

Now, a DataAdapter cannot automatically generate an InsertCommand of its own. You can use a CommandBuilder to do so though, but that would require doing things slightly differently to what I suggested. The DataAdapter's SelectCommand is used as a basis, so you cannot target a different database. You should also note that this doesn't mean that you're not using parameters. It just means that the CommandBuilder is creating them for you.

Again, I suggest that you follow the Data Access link in my signature. It contains examples of using a CommandBuilder and also creating the commands yourself. Even if you don't do so this time, you really should know how to create parameters yourself. It's very easy and essential for anyone using ADO.NET.