Проблема несоответствия типов данных в параметризованном запросе вставки - PullRequest
0 голосов
/ 12 февраля 2010

У меня есть этот код для переноса записей из одной таблицы в другую

cmd2.CommandText = "select * from " + TableName;
                    reader = cmd2.ExecuteReader();
                    if (reader != null)
                    {

                        String s = "".PadLeft(reader.FieldCount - 1, 'X').Replace("X", "?,") + "?";
                        cmd.CommandText = String.Format("{0} into {1} values ({2})", insertorreplace, TableName, s);

                        StringBuilder sb = new StringBuilder();
                        while (reader.Read())
                        {
                            int i = 0;

                            for (i = 0; i < reader.FieldCount; ++i)
                            {
                                cmd.Parameters.AddWithValue(null,reader[i].ToString()); // data type issue
                            }
                            cmd.ExecuteNonQuery();
                        }
                        reader.Close();
                    }

Возможно, из-за закомментированной строки я получаю проблему с типом данных. Я хочу, чтобы все было передано через строку.

Все еще ищу ответы

1 Ответ

0 голосов
/ 13 февраля 2010

Если вы копируете из одной таблицы в другую, лучше всего сделать все это в одном запросе с INSERT INTO ... SELECT FROM.

Чтобы исправить свой код, просто удалите .ToString() из reader[i].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...