you cannot use parameters that way, they are only valid as values/where clause, but you cannot use them as column names/table namesin your case, it is probably easier to dostring StrSql_1 = String.Format("select {0} as a, {1} as b from {2}", row["FCol_name"], row["FCol_name_dis"],row["FTab_name"] );SqlDataAdapter myCommand_1 = new SqlDataAdapter(StrSql_1,Conn); 
DataSet ds_1 = new DataSet();myCommand_1.Fill(ds_1,"FTab");
DataTable dt_1 = ds_1.Tables["FTab"];