Q:

Unsure whats causing this FormatException (string -> int)

I have a method which accepts a DataTable DT and int userID then executes a Stored Procedure using values from DT:
TempDS = New DataSet

DR = DTable.Rows(0)
StrQuery = "Execute usp @aPreAdmID = @PreAdmID"
StrQuery += " @aPassword = @Password"
StrQuery += " @aUserID = @UserID"
StrQuery += " @aUser = @User"
StrQuery += " @aAdmDtm = @AdmDtm"
StrQuery += " @aComment = @Comment"
StrQuery += " @aFacCode = @FacCode"
StrQuery += " @aIsLDAP = @IsLDAP"

Dim cmd As SqlCommand = New SqlCommand(StrQuery)
cmd.Parameters.Add("@PreAdmID", DR.Table.Columns(0).ToString()).DbType = DbType.Int32
cmd.Parameters.Add("@Password", DR.Table.Columns(1).ToString()).DbType = DbType.String
cmd.Parameters.Add("@UserID", DR.Table.Columns(2).ToString()).DbType = DbType.Int32
cmd.Parameters.Add("@User", DR.Table.Columns(3).ToString()).DbType = DbType.String
cmd.Parameters.Add("@AdmDtm", DR.Table.Columns(5).ToString()).DbType = DbType.String
cmd.Parameters.Add("@Comment", DR.Table.Columns(6).ToString()).DbType = DbType.String
cmd.Parameters.Add("@FacCode", DR.Table.Columns(7).ToString()).DbType = DbType.String
cmd.Parameters.Add("@IsLDAP", DR.Table.Columns(8).ToString()).DbType = DbType.Int32

Dim pObjDataAdaptor As New SqlClient.SqlDataAdapter

pObjDataAdaptor.SelectCommand = cmd
pObjDataAdaptor.SelectCommand.CommandTimeout = 3600

pObjDataAdaptor.Fill(TempDS, aStrDSName)

The values in DR.Table are as follows:

0.) 123
1.) myPassword
2.) 456
3.) myUserName
4.) empty string
5.) empty string
6.) empty string
7.) MUDS
8.) 0

There's an extra column in the DataRow, but it doesn't get used by this stored procedure which is why I skip over index 4 when adding parameters.
Lastly, the Stored Procedure is defined as follows:
ALTER PROCEDURE [dbo].[usp]
(
    @PreAdmID    INT
    ,@aUserID      INT = NULL
    ,@aUser       varchar(255)
    ,@aComment      varchar(2048) = NULL
    ,@aAdmDtm  varchar(2048) = NULL
    ,@aPassword      varchar(15)
    ,@aFacCode     varchar(10)
    ,@aIsLDAP           INT
)

When I run it, I get a System.FormatException:

Failed to convert parameter value from a String to a Int32. Input string was not in the correct format

I have no idea what's wrong. The only parameters that are supposed to be Integers are defined as such when adding the the parameter.
EDIT I tried removing the ToString() on my int parameters, this causes a different exception:
System.InvalidCastException: 

Failed to convert parameter value from a DataColumn to a Int32

A:

The cast message tells you the issue- DataColumn does not contain your data. Try referencing the data in the row:  DR[0], DR[1], etc.

