Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Как лучше всего записывать данные из DataTable в sql-ю базу Есть база например Excel таблица dbo.Excel - поля id, name1, name2 Хранимая процедура ALTER PROCEDURE InsertExcel @name1 nvarchar(50), @name2 nvarchar(50) AS BEGIN INSERT INTO dbo.Excel ([name1], [name2]) VALUES (@name1, @name2) DECLARE @id int SET @id = scope_identity() END В программе я считываю данные из Excel анализирую и питаюсь записать их в базу DataSet excelDataSet = new DataSet(); //загрузка из excel в DataSet(DataTable) и прочее Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. но мне выпадает ошибка см. скрин Может это и глупо но как из DataSet(DataTable) можна записывать данные в базу? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 19:35 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
VIT2708Как лучше всего записывать данные из DataTable в sql-ю базу Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. но мне выпадает ошибка см. скрин Может это и глупо но как из DataSet(DataTable) можна записывать данные в базу? Спасибо.Потому и выпадает, что Вы в каждой итерации добавляете в коллекцию параметров cmd по два (новых) параметра - а их должно быть всего два... Перепишите, например, как-то вот так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 20:27 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
VIT2708Как лучше всего записывать данные из DataTable в sql-ю базу SqlBulkCopy и только SqlBulkCopy. P.S. Код от sphinx_mv можешь выкинуть на свалку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 22:14 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУ, Посоветуйте лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 13:44 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mv, Поэкспериментировал и сделал там оказалось все намного проще Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. А вот если сделать так то все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 13:47 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
VIT2708sphinx_mv, Поэкспериментировал и сделал там оказалось все намного проще Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. А вот если сделать так то все работаетРаботает - уже хорошо. :) И только теперь можно (и даже нужно) заняться "улучшизмом"... Обратите внимание: у Вас создается по одному экземпляру SqlCommand (с набором параметров) на каждую итерацию... На больших объемах данных (если такой подход к кодированию сохранится) может вызвать определенныее проблемы. На "мелочах" (и поначалу) выделение памяти и инициализация объектов и последующее освобождение выделенных под них ресурсов не очень заметны, но с ростом объемов обрабатываемых данных затраты на эти операции многократно (и нелинейно) возрастают... И еще... Ни сами переменные параметров name1 и name2, ни их инициализация в Вашем примере в-общем-то не нужны - эти две строки в Вашем примере можно безболезненно убрать. P.S. А у меня была ошибка: name1 и name2 не добавлялись в коллекцию параметров cmd. Нужно было использовать sql.Parameters.Add(name1) и тоже самое для name2 сразу после их инициализации - и тоже бы работало... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 16:21 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mv, Так данных то в этих файлах что даются немного. По поводу улучшений попробую ваш код ну может еще чего то накопаю Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 16:27 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mvНужно было использовать sql.Parameters.Add(name1) и тоже самое для name2 сразу после их инициализации - и тоже бы работало... :) Садись, двойка. RTFM ...Перегруженной версией метода Add, принимающая строку и объект пренебрегали из-за возможного конфликта с перегруженной версией SqlParameterCollection.Add, принимающей String и значение из перечисления SqlDbType, поскольку передача целого значения в строке может интерпретироваться как значение параметра или соответствующее значение SqlDbType. Используйте AddWithValue, когда требуется добавить параметр, задав его имя и значение. Даже дети про это знают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 16:29 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУsphinx_mvНужно было использовать sql.Parameters.Add(name1) и тоже самое для name2 сразу после их инициализации - и тоже бы работало... :) Садись, двойка. RTFM ...Перегруженной версией метода Add, принимающая строку и объект пренебрегали из-за возможного конфликта с перегруженной версией SqlParameterCollection.Add, принимающей String и значение из перечисления SqlDbType, поскольку передача целого значения в строке может интерпретироваться как значение параметра или соответствующее значение SqlDbType. Используйте AddWithValue, когда требуется добавить параметр, задав его имя и значение. Даже дети про это знают. Дети даже НЕ ЗНАЮТ всех перегруженных методов (в частности, SqlParameterCollection.Add(SqlParameter)) - и ОЧЕНЬ зря... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Ну, и какие "конфликты", про которые пишется в RTFMе? То есть, проблема, конечно, МОЖЕТ иметь место - но НЕ в ЭТОМ конкретном случае... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 16:52 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
VIT2708sphinx_mv, Так данных то в этих файлах что даются немного. Ну, так и выделенные ресурсы освобождаются не сразу... Вполне может сложиться ситуация, когда Ваш код полностью отработал 10-100-1000 раз, а ресурсы, внутри него выделенные, еще ни разу не освободились... А потом в некий момент времени "Ч" сборщик мусора "дорывается до халявы" (т.е., "свободного" процессора) и начинает все это "фиксить"... VIT2708Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 17:04 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mvДети даже НЕ ЗНАЮТ всех перегруженных методов (в частности, SqlParameterCollection.Add(SqlParameter)) - и ОЧЕНЬ зря... У детей рассеянное внимание, они не могут сосредоточиться на главном - рекомендация от MS "Используйте AddWithValue, когда требуется добавить параметр, задав его имя и значение." Мало? sphinx_mvНу, и какие "конфликты", про которые пишется в RTFMе? Если ты до сих пор не понял, о чем речь в документации - иди займи у коллег мозги, а потом садись писать код. sphinx_mvТо есть, проблема, конечно, МОЖЕТ иметь место - но НЕ в ЭТОМ конкретном случае... Есть рекомендации, как правильно писать - это самое главное. Писать гавнокод (даже если он на первый взгляд и работает) или писать правильный код - твои личные проблемы. Просто за отсутствием маломальски какого-то ни было опыта ты используешь гумно, нагугленное с пионерских форумов. Учись, бобёр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2012, 17:11 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУsphinx_mvДети даже НЕ ЗНАЮТ всех перегруженных методов (в частности, SqlParameterCollection.Add(SqlParameter)) - и ОЧЕНЬ зря... У детей рассеянное внимание, они не могут сосредоточиться на главном - рекомендация от MS "Используйте AddWithValue, когда требуется добавить параметр, задав его имя и значение." Мало? Айдане3.14зди! Мне НЕ нужно - т.е. ВООБЩЕ - даже пытаться "добавлять параметр в колекцию параметров вместе со значением" . Мне нужно - и я именно это сделал! - в цикле присвоить значение давным-давно добавленному в коллекцию отдельно проинициализированному параметру! И ВСЕ! Соответственно, метод коллекции параметров AddWithValue к этому НИКАКОГО отношения к ненаписанной Вами ни единой правильной строке кода отношения не имеет - то есть СОВСЕМ! Если Вы не видите разницы между этими СОВЕРШЕННО РАЗНЫМИ способами использования параметров в запросах, обращайтесь к несколько более другому специалисту: я такое не лечу - и Вам об этом УЖЕ было неоднократно сказано. МСУsphinx_mvНу, и какие "конфликты", про которые пишется в RTFMе? Если ты до сих пор не понял, о чем речь в документации - иди займи у коллег мозги, а потом садись писать код. Были бы у Вас самого были мозги, Вы бы ПОНЯЛИ, что НА САМОМ ДЕЛЕ написано в процитированом Вами отрывке RTFMа... И я давно понял: ВАШИ коллеги с Вами делиться мозгами не хотят - другого объяснения отсутствию Вашего "правильно написаного" (по всем "стандартам" и "рекомендациям") работающего варианта решения просто не существует... МСУsphinx_mvТо есть, проблема, конечно, МОЖЕТ иметь место - но НЕ в ЭТОМ конкретном случае... Есть рекомендации, как правильно писать - это самое главное. Рекомендации надо применять В ТОМ МЕСТЕ, К КОТОРОМУ ЭТИ РЕКОМЕНДАЦИИ ОТНОСЯТСЯ! И рекомендации на то и РЕКОМЕНДАЦИИ, что они РЕКОМЕНДУЮТСЯ, но НЕ обязательны к применению - уж не-говнокодеры об этом должны были бы хотя бы подозревать! Фанатично использовать рекомендации как обязаловку к месту и не к месту - вот это и есть САМЫЙ НАСТОЯЩИЙ ГОВНОКОД! Вы ТАК пишете?! Тогда Вы ЗНАЕТЕ, как назвать ВАШ "код"?! МСУ Писать гавнокод (даже если он на первый взгляд и работает) или писать правильный код - твои личные проблемы. Просто за отсутствием маломальски какого-то ни было опыта ты используешь гумно, нагугленное с пионерских форумов. Учись, бобёр.А самому прекратить дрочить на монитор и показать правильный не-говнокод слабо - вот как раз с теми самыми AddWithValue? Или - еще лучше - SqlBulkCopy? (запасаюсь попкорном и пивом) Вот такие у нас "гуру": сами ни строки кода (даже не рабочего) не написали, зато у других (полностью функциональный) не код, а говно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 01:42 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mvАйдане3.14зди! Мне НЕ нужно - т.е. ВООБЩЕ - даже пытаться "добавлять параметр в колекцию параметров вместе со значением" . Мне нужно - и я именно это сделал! - в цикле присвоить значение давным-давно добавленному в коллекцию отдельно проинициализированному параметру! И ВСЕ! Если нужна переинициализация значением, есть SqlParameterCollection.Clear . Кухарка не знает о этом чудном методе? sphinx_mvСоответственно, метод коллекции параметров AddWithValue к этому НИКАКОГО отношения к ненаписанной Вами ни единой правильной строке кода отношения не имеет - то есть СОВСЕМ! AddWithValue не имеет никакого отношения ровно в точности, в которой не имеешь отношения к программированию твой мозг. sphinx_mvЕсли Вы не видите разницы между этими СОВЕРШЕННО РАЗНЫМИ способами использования параметров в запросах, обращайтесь к несколько более другому специалисту: я такое не лечу - и Вам об этом УЖЕ было неоднократно сказано. Если ты так и не понял, что AddWithValue - это бест практис, слелай себе трепанацию черепной коробки. sphinx_mvБыли бы у Вас самого были мозги, Вы бы ПОНЯЛИ, что НА САМОМ ДЕЛЕ написано в процитированом Вами отрывке RTFMа... И я давно понял: ВАШИ коллеги с Вами делиться мозгами не хотят - другого объяснения отсутствию Вашего "правильно написаного" (по всем "стандартам" и "рекомендациям") работающего варианта решения просто не существует... Вся проблема заключается не в том, что кто-то с тобой хочет чем-то делиться, а в том, что тебе уже поздно воспринимать что-то новое. Про рекомендации и стандарты я как-бы умалчиваю даже, ты не в состоянии не то что что-то делать, а даже просто думать. sphinx_mvРекомендации надо применять В ТОМ МЕСТЕ, К КОТОРОМУ ЭТИ РЕКОМЕНДАЦИИ ОТНОСЯТСЯ! Ну так применяй. Или не знаешь как это применять? sphinx_mvИ рекомендации на то и РЕКОМЕНДАЦИИ, что они РЕКОМЕНДУЮТСЯ, но НЕ обязательны к применению - уж не-говнокодеры об этом должны были бы хотя бы подозревать! Фанатично использовать рекомендации как обязаловку к месту и не к месту - вот это и есть САМЫЙ НАСТОЯЩИЙ ГОВНОКОД! Вы ТАК пишете?! Тогда Вы ЗНАЕТЕ, как назвать ВАШ "код"?! Рекомендации на то и рекомендации, что им нужно следовать, а не тупо быдлокодить, как это делаешь ты. Твоей феерический гавнокод не знает границ, это не удивительно. sphinx_mvА самому прекратить дрочить на монитор и показать правильный не-говнокод слабо - вот как раз с теми самыми AddWithValue? Ты меня и монитор с кем-то спутал, не уж-то со своим отражением в зеркале? Бери правую руку и начинай писать правильный код: Код: c# 1. 2. 3. 4. 5. 6. 7. ЗЫ: SqlParameter оставь для таких как ты домохозяек, которым не под силу освоить ORM или балк копи. sphinx_mvИли - еще лучше - SqlBulkCopy? (запасаюсь попкорном и пивом) Лучше запасись валерьянкой и ножницами для трепанации черпной коробки, тебе эти вещи нужнее будут. Зачем тебе от меня пример, или уже мозги высохли, чтобы тупо открыть справку и прочитать о этом классе? http://msdn.microsoft.com/ru-ru/library/system.data.sqlclient.sqlbulkcopy.aspx sphinx_mvВот такие у нас "гуру": сами ни строки кода (даже не рабочего) не написали, зато у других (полностью функциональный) не код, а говно... Вот такие у нас "ламеры": сами тонны кода написал (нагугленного, с пионерских форумов) и гордо ходят и надувают пузыри из носа. Бугага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 09:21 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУЕсли нужна переинициализация значением, есть SqlParameterCollection.Clear . Кухарка не знает о этом чудном методе? Во-вторых, AddWithValue ретурнит новый созданный SplParameter. Можно только один раз для первого значения из цикла выполнить AddWithValue, а для остальных использовать готовый параметр (чтобы не клерить через Clear, если лениво писать строчку кода). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 09:35 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУsphinx_mvАйдане3.14зди! Мне НЕ нужно - т.е. ВООБЩЕ - даже пытаться "добавлять параметр в колекцию параметров вместе со значением" . Мне нужно - и я именно это сделал! - в цикле присвоить значение давным-давно добавленному в коллекцию отдельно проинициализированному параметру! И ВСЕ! Если нужна переинициализация значением, есть SqlParameterCollection.Clear . Кухарка не знает о этом чудном методе? Еще раз для особо "продвинутых": у меня УЖЕ ЕСТЬ экземпляр параметра с нужными основными атрибутами: имя, тип данных, размерность - это по самому скромному минимуму... И мне СОВЕРШЕННО не только НЕ нужен, но во многих случаях его еще и физически НЕВОЗМОЖНО использовать, метод AddWithValue, и, тем более - метод Clear, ибо их сочетание в цикле внутри кода от "суперского гуру" - пример редкостного говнокода, который простителен ТОЛЬКО для начинающих программистов-студентов на лабораторках по программированию. МСУsphinx_mvСоответственно, метод коллекции параметров AddWithValue к этому НИКАКОГО отношения к ненаписанной Вами ни единой правильной строке кода отношения не имеет - то есть СОВСЕМ! AddWithValue не имеет никакого отношения ровно в точности, в которой не имеешь отношения к программированию твой мозг. Тут главное, чтобы Вам не вынесло мозги Вашим говнокодом. Десятки/сотни/тысячи раз в цикле выполнять инициализацию экземпляра (не считая необходимости настроить дополнительные атрибуты экземпляра), для который совершенно безболезненным образом можно неоднократно присваивать новое значение Value - это не просто круто... ЭТО - ОЧЕНЬ КРУТО!!! МСУsphinx_mvЕсли Вы не видите разницы между этими СОВЕРШЕННО РАЗНЫМИ способами использования параметров в запросах, обращайтесь к несколько более другому специалисту: я такое не лечу - и Вам об этом УЖЕ было неоднократно сказано. Если ты так и не понял, что AddWithValue - это бест практис, слелай себе трепанацию черепной коробки. А!!! Так Вам УЖЕ сделали трепананацию?! 8() Может и про лоботомию не забыли? МСУsphinx_mvБыли бы у Вас самого были мозги, Вы бы ПОНЯЛИ, что НА САМОМ ДЕЛЕ написано в процитированом Вами отрывке RTFMа... И я давно понял: ВАШИ коллеги с Вами делиться мозгами не хотят - другого объяснения отсутствию Вашего "правильно написаного" (по всем "стандартам" и "рекомендациям") работающего варианта решения просто не существует... Вся проблема заключается не в том, что кто-то с тобой хочет чем-то делиться, а в том, что тебе уже поздно воспринимать что-то новое. Про рекомендации и стандарты я как-бы умалчиваю даже, ты не в состоянии не то что что-то делать, а даже просто думать. Ну, с Вашими познаниями стандартов Вам еще леучиться и ле учиться... То Вы с основами объектно -ориентированного программирования убились об стену... То для Вас дословное майкрософтовское определение термина "code-behind" стало означать что-то более другое, чем разделение кода и верстки в ASP.NET... То для Вас рекомендация относительно ОЧЕНЬ ЧАСТНОГО случая использования одного конкретного, отдельно взятого наследника DbParameterCollection , который вызывает когнитивный дисонанс мсу-образных говнокодеров, внезапно становятся "бэст практис"... МСУsphinx_mvРекомендации надо применять В ТОМ МЕСТЕ, К КОТОРОМУ ЭТИ РЕКОМЕНДАЦИИ ОТНОСЯТСЯ! Ну так применяй. Или не знаешь как это применять? Вот и применяйте! Если не знаете не только основ ADO.NET, но и функционала базовых класов в .NET... А я НЕ хочу, НЕ должен, НЕ обязан и НЕ буду использовать Вашу говнокодерскую "бэст практис" в своих разработках - к счастью, Ваш бред к моей нынешней платформе разработки даже и НЕ применим: эквивалентная коллекция параметров просто "положила" на Ваш когнитивно-диссонансный "супер-AddWithValue". МСУsphinx_mvИ рекомендации на то и РЕКОМЕНДАЦИИ, что они РЕКОМЕНДУЮТСЯ, но НЕ обязательны к применению - уж не-говнокодеры об этом должны были бы хотя бы подозревать! Фанатично использовать рекомендации как обязаловку к месту и не к месту - вот это и есть САМЫЙ НАСТОЯЩИЙ ГОВНОКОД! Вы ТАК пишете?! Тогда Вы ЗНАЕТЕ, как назвать ВАШ "код"?! Рекомендации на то и рекомендации, что им нужно следовать, а не тупо быдлокодить, как это делаешь ты. Твоей феерический гавнокод не знает границ, это не удивительно. Бла-бла-бла... Говнокодеры, естественно НЕ знают, что DbParamaterCollection, от которого наследуются все XXXParameterCollection, НЕ содержит метода AddWithValue - во такая "бэст практис"... Соответственно, даже Мелкомягкие считают вполне вменяемым решением необязательность реализации этого метода по усмотрению разработчиков соотвествующих библиотек классов. Были бы у Вас мозги, это, может быть, заставило бы Вас задуматься, с чего бы это вдруг... МСУsphinx_mvА самому прекратить дрочить на монитор и показать правильный не-говнокод слабо - вот как раз с теми самыми AddWithValue? Ты меня и монитор с кем-то спутал, не уж-то со своим отражением в зеркале? Бери правую руку и начинай писать правильный код: Код: c# 1. 2. 3. 4. 5. 6. 7. Говнокод! Начиная с того, что он НЕ РАБОЧИЙ - то есть, ВООБЩЕ: не приведено еще ...дцать экранов Вашего (дополнительного) говнокодирования, чтобы это хотя бы можно было попытаться откомпилировалось... И заканчивая тем, что ни AddWithValue, ни SqlBulkCopy, которые были указаны в исходных условиях, нигде не используются.. Соответственно, Вы всегда можете получить Вашу медаль говнокодера по первому Вашему требованию... МСУЗЫ: SqlParameter оставь для таких как ты домохозяек, которым не под силу освоить ORM или балк копи. BulkCopy - даже для Вас это вызвало немеряные затруднения. МСУsphinx_mvИли - еще лучше - SqlBulkCopy? (запасаюсь попкорном и пивом) Лучше запасись валерьянкой и ножницами для трепанации черпной коробки, тебе эти вещи нужнее будут. Зачем тебе от меня пример, или уже мозги высохли, чтобы тупо открыть справку и прочитать о этом классе? http://msdn.microsoft.com/ru-ru/library/system.data.sqlclient.sqlbulkcopy.aspx МСУНЕ КАНАЕТ: ПРИМЕР КОДА - В СТУДИЮ!!! МАКСИМАЛЬНО ПОЛНЫЙ ПРИМЕР! Строку подключения к БД и заполнение DataTable исходными данными из файла Excel разрешаю пропустить... Если ВЫ не можете САМОСТОЯТЕЛЬНО показать вменяемый пример кода (ну, хотя бы копи-пастом), ВЫ - ЛАМЕР и ЛОХ! Очень, надеюсь, лохи и ламеры не обидятся за эти сравнения... Ну, а про говнокодера, вроде бы, уже было сказано... sphinx_mvВот такие у нас "гуру": сами ни строки кода (даже не рабочего) не написали, зато у других (полностью функциональный) не код, а говно... Вот такие у нас "ламеры": сами тонны кода написал (нагугленного, с пионерских форумов) и гордо ходят и надувают пузыри из носа. Бугага.Бла-бла-бла... Если Вы обосрались, для начала хотя бы подмойтесь - воняет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 18:55 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУМСУЕсли нужна переинициализация значением, есть SqlParameterCollection.Clear . Кухарка не знает о этом чудном методе? Во-вторых, AddWithValue ретурнит новый созданный SplParameter. Можно только один раз для первого значения из цикла выполнить AddWithValue, а для остальных использовать готовый параметр (чтобы не клерить через Clear, если лениво писать строчку кода).Ага... Обязательно нужно добавить еще говнокода, чтобы определить, а не первая ли строка в цикле обрабатывается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 18:57 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mvЕще раз для особо "продвинутых": у меня УЖЕ ЕСТЬ экземпляр параметра с нужными основными атрибутами: имя, тип данных, размерность - это по самому скромному минимуму... Еще раз для не особо смышленых - ты можешь и новый параметр в каждой итерации генерить, супер прироста скорости ты не получишь. sphinx_mvИ мне СОВЕРШЕННО не только НЕ нужен, но во многих случаях его еще и физически НЕВОЗМОЖНО использовать, метод AddWithValue, и, тем более - метод Clear, ибо их сочетание в цикле внутри кода от "суперского гуру" - пример редкостного говнокода, который простителен ТОЛЬКО для начинающих программистов-студентов на лабораторках по программированию. Кодирующая обезьянка до сих пор не поняла, что написала гавнокод, который убог по своей сути? Clear особо сильно не заговнял бы твой гавнокод. sphinx_mvТут главное, чтобы Вам не вынесло мозги Вашим говнокодом. Гавнокод у тебя в подсознании, которое абсолютно бездумно пытается что-то написать. sphinx_mvДесятки/сотни/тысячи раз в цикле выполнять инициализацию экземпляра (не считая необходимости настроить дополнительные атрибуты экземпляра), для который совершенно безболезненным образом можно неоднократно присваивать новое значение Value - это не просто круто... ЭТО - ОЧЕНЬ КРУТО!!! Десятки/сотни/тысячи раз в цикле выполнять инициализацию экземпляра - это очень круто, особенно для тебя. Десятки/сотни/тысячи раз в цикле выполняют такие операции только параноики вроде тебя, а нормальные люди пользуются балком (не только SqlBulkCopy, есть иные вариации), SSIS, DTS, ORM наконец. sphinx_mvА!!! Так Вам УЖЕ сделали трепананацию?! 8() Может и про лоботомию не забыли? Откуда ты знаешь столько умных слов? Опытный в этом деле, однако. sphinx_mvНу, с Вашими познаниями стандартов Вам еще леучиться и ле учиться... Да уж, с твоими дегенеративными умениями стряпать хранимые процедуры, пакеты и бизнес логику на оракле с единичным по иерархии наследованием - только сверстников в детсаде веселить. Продолжай дальше пыжиться. sphinx_mvТо Вы с основами объектно -ориентированного программирования убились об стену... Уж не напоминай, ты так весьма прискорбно наложил в штаны от слов инкапсуляция, полиморфизм и наследование, что твои унылые хранимые процедуры начали рваться по шву. Было смешно. sphinx_mvТо для Вас дословное майкрософтовское определение термина "code-behind" стало означать что-то более другое, чем разделение кода и верстки в ASP.NET... Ты до сих пор так ничего и не поняла, блондинка - code-behind разделяет серверный код (логику и декларативный aspx/ascx). Вёрстка разделяется только в твоей больной фантазии - садись, опять двойка. sphinx_mvТо для Вас рекомендация относительно ОЧЕНЬ ЧАСТНОГО случая использования одного конкретного, отдельно взятого наследника DbParameterCollection , который вызывает когнитивный дисонанс мсу-образных говнокодеров, внезапно становятся "бэст практис"... Всё намного банальнее - твои мозги не умеют воспринимать и интерпритировать эти частные случаи под конкретную реализацию, основанную на дрокументированную рекомендацию. sphinx_mvВот и применяйте! Если не знаете не только основ ADO.NET, но и функционала базовых класов в .NET... Ты еще из яйца не вылупился, когда тут во всю тёрли об основах адо и дотнета, даже не то, чтобы что-то писать на говно-хп. Иди RTFM кури, недоросль. sphinx_mvА я НЕ хочу, НЕ должен, НЕ обязан и НЕ буду использовать Вашу говнокодерскую "бэст практис" в своих разработках - к счастью, Ваш бред к моей нынешней платформе разработки даже и НЕ применим: эквивалентная коллекция параметров просто "положила" на Ваш когнитивно-диссонансный "супер-AddWithValue". Ты можешь даже убить себя об стену, мне фиолетово. А AddWithValue будут использовать те, кто понимает что это и зачем оно нужно. sphinx_mvБла-бла-бла... Говнокодеры, естественно НЕ знают, что DbParamaterCollection, от которого наследуются все XXXParameterCollection, НЕ содержит метода AddWithValue - во такая "бэст практис"... Соответственно, даже Мелкомягкие считают вполне вменяемым решением необязательность реализации этого метода по усмотрению разработчиков соотвествующих библиотек классов. Были бы у Вас мозги, это, может быть, заставило бы Вас задуматься, с чего бы это вдруг... Ахринеть, прикинь, MarshalByRefObject тоже ничего не знает о AddWithValue. К чему твой унылый высер? Какую-то ты ахиненю задвинул про то, что там мелкомягкие считают про необязательность. Кодируеющей обезьянке невдомёк, что она глупости пишет? sphinx_mvГовнокод! Начиная с того, что он НЕ РАБОЧИЙ - то есть, ВООБЩЕ: не приведено еще ...дцать экранов Вашего (дополнительного) говнокодирования, чтобы это хотя бы можно было попытаться откомпилировалось... Посмешила твоя тупость. Дцать экранов кода сокрыто от прикладного разработчика в виде кодогенерирующего прокси-контекста, который строит дата модель на основе объектов хранилища. У тебя 2 варианта - убить себя об стену или-таки почитать в своей любимой википедии, что такое ORM и какую оно нишу занимает в современной разработке. И только после этого кодирующая обезьянка поймет, что прикладной код станет очень компактным, типизированным и удобоваримым. В отличие от твоего датасетного гумна, которое ты тут опорожнил в форум. sphinx_mvИ заканчивая тем, что ни AddWithValue, ни SqlBulkCopy, которые были указаны в исходных условиях, нигде не используются.. Няньчить тебя будут воспитатели в садике, может и по-буквам код распишут. Если не хватает ума написать элементарщину с помощью AddWithValue и SqlBulkCopy - можешь даунгрейдиться до яслей, там точно помогут. sphinx_mvСоответственно, Вы всегда можете получить Вашу медаль говнокодера по первому Вашему требованию... Неуж-то медаль вручит кодирующая обезьянка, которая декларативный серверный код путает с клиентской вёрсткой? sphinx_mvBulkCopy - даже для Вас это вызвало немеряные затруднения. SqlBulkCopy я использовал столько раз в подобных задачах, сколько твоя унылая воспаленная фантазия генерила гавнокод на оракловых хранимых процедурах. sphinx_mvНЕ КАНАЕТ: ПРИМЕР КОДА - В СТУДИЮ!!! МАКСИМАЛЬНО ПОЛНЫЙ ПРИМЕР! Чудик, я тебя ссылку дал с кодом. Никак не осилишь? Тогда в садик сходи, детвора поможет. sphinx_mvСтроку подключения к БД и заполнение DataTable исходными данными из файла Excel разрешаю пропустить... Это ты уже осилил? Занятно. Еще вчера ты просил весь код. sphinx_mvЕсли ВЫ не можете САМОСТОЯТЕЛЬНО показать вменяемый пример кода (ну, хотя бы копи-пастом), ВЫ - ЛАМЕР и ЛОХ! Очень, надеюсь, лохи и ламеры не обидятся за эти сравнения... Ребёнок, ты из каких кустов вылез? Твои унылые словечки про лохов одногрупникам рассказывай. А по поводу кода - если ты SqlBulkCopy так и не осилил из документации, в которой в конце есть подробный расписанные пример - то тебе дорога только к кирпичной стене. sphinx_mvЕсли Вы обосрались, для начала хотя бы подмойтесь - воняет... Если я обосрался на тебя, то ты не нуждаешься в чистке. sphinx_mvАга... Обязательно нужно добавить еще говнокода, чтобы определить, а не первая ли строка в цикле обрабатывается... Ну конечно, ламеры не знают о существовании тернартного оператора (только не проси опять приводить пример, потому что обезьянка не умеет читать документацию), с помощью которого в одну строчку можно сделать такую проверку. Во-вторых, тернарную операцию нужно проводить до цикла. Жжешь как всегда. Ну и по поводу code-behind, вот тебе ответ на твой высер 13472778 sphinx_mv"Не говорите, что мне делать - и я не скажу куда Вам пойти." (с) Обезьянка разучила новую скороговорку? Занятно. "Чего в голове нет, того к ушам не пришьёшь" (с) sphinx_mvЕсли Вам кажется, что ТС ДОЛЖЕН Вам отвечать на тему сроков - Вы можете САМОСТОЯТЕЛЬНО задать ему этот вопрос... И моего РАЗРЕШЕНИЯ Вам для этого СОВЕРШЕННО не требуется... Зачем мне самостоятельно узнавать о сроках? Это же ты начал вонь про неуточненные сроки. Или уже нить обсуждения потерял? sphinx_mvКстати, если у Вас в очередной раз проблемы с памятью: ТС говорил о РАБОТАЮЩЕМ приложении, для которого понятие "поиграться с новой технологией" ВООБЩЕ не применимы. Соотвественно, имеем очередные Ваши пустые измышлизмы. Похожу проблемы с памятью у кого-то другого - ТС про "поиграться" вообще ничего не говорил. О чем ты вообще пишешь, фантазёр? sphinx_mvЯ не знаю, что генерят Ваши мозги, но если Вы в своих "непонятно-чего-заключениях" пропустили вводные от ТС - это не мои проблемы... Для начала нужно разучить буквы и научиться читать, чтобы понимать обсуждаемую предметику. Без этих азов у тебя нет шансов на успех. sphinx_mvЕсли Вы при этом предположили, что у ТС есть ВСЕ необходимые ресурсы, упустив два из наиболее значимых, кто же ж Вам доктор, если только тупая (на большее Вас, почему-то никогда не хватает) констатация фактов способна вернуть Вас в реальный мир? Ты сам себе перечишь: как можно предположить, что "у ТС есть ВСЕ необходимые ресурсы" и при этом "упустив пару значимых моментов"? Вода белая но при этом красная. Ты прямо-таки блещешь нездоровой логикой, впрочем, не удивительно. sphinx_mvЕсли бы у ТС были в команде (я даже, посмотрев в хрустальный шар, очень сильно сомневаюсь в самом наличии у него команды) разработчики для asp.net хоть с минимальным опытом, он бы не задавал такой простой вопрос о переходить/не переходить на него здесь - зуб даю! Обычно такие как ты без этих самых зубов и остаются. Хрустальный шар можешь засунуть себе туда, где ему самое место - а у автора может быть команда (при нем, при параллельной команде/отделе и т.д.). Варианты одним не ограничиваются. sphinx_mvБла-бла-бла... Вам уже неоднократно указывалось, что мало знать название термина - нужно понимать, что этот термин подразумевает... Читать тут. Что ты мне хотел рассказать в этой статье? Тем, что тупой автор называет асп.нет вьюху html'ем и css'ом? Вот пока такие как ты оболтусы пишут статьи на различных ресурсах, у нью дженерейшен имеется выбор - читать левый материал либо правильный. sphinx_mvMS introduced CodeBehind, a technique which allows you to completely separate markup (HTML, CSS etc.) and code (C#, VB.NET etc.) Перевести? Даже не особо умная твоя википедия знает, что: http://ru.wikipedia.org/wiki/ASP.NET "Возможность разделения визуальной части и бизнес-логики по разным файлам («code behind»)" (c) речь идет о серверных элементах - *.cs и *.aspx (*.ascx, *.ashx). "html+css" в качестве вью для код бехайнда - только твое воспаленное сознание может придумать. Учи матчасть, неудачник. sphinx_mvВы почитать первоисточник (ASP.NET Code-Behind Model Overview) пробовали? Пробовал, когда ты еще ссаться кипятком под стол ходил. От того, что написал первый пакет в оракле. sphinx_mvCode-behind refers to code for your ASP.NET page that is contained within a separate class file. This allows a clean separation of your HTML from your presentation logic. Перевод требуется? В статье "html-ем" называют "aspx" (что не есть правильно) : Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Чтобы твоя тупая башка лучше понимала предметику, разжую - это "aspx", серверная страница с серверными элементами управления до рендеринга. После того, как код этой страницы будет отрендерен движком asp.net, клиент в браузере получит "html". Так что в примере - не "html". В html невозможно использовать серверные элементы runat. Ты начал свою вонь про клиент "html" и SQL. Я твоей тупой башке уже много времени объясняю о "Code-Behind" или View + SQL. Если ты до сих пор не можешь понять разницу между "html" (клиент, после рендеринга) и "aspx" (сервер, до рендеринга) - сходи в ясли, там на пальцах покажут. Ну что, балбесу всё понятно или дальше дожевать? sphinx_mvБла-бла-бла... Мусье, таки, не знает, в чем заключается разница между "дополнительной абстракцией" и "прямым подключением к БД"? 1. Кодирующая обезьянка выучила новое слово "дополнительная абстракция"? 2. Этот высер, вообще, о чем? sphinx_mvА уж выдавать "прямое подключение" LinqDataSource, SOA и пр. - это вообще верх "совершенства" познаний... Чудо, LinqDataSource напрямую подключается к БД и транслирует запросы через ORM датаконтекст. Это его прямая обязанность, неуч. sphinx_mvМожет, все-таки, перед тем как другим советовать, Вам бы самому почитать "букварь"? И не один... Советовать тебе будут дети в саду, где тебе и место. А я тебе, балбесу, пишу о том, как это работает. sphinx_mvВам снизили дозу галоперидола? Наверное, врач погорячился... Ты после трепанации черепа? Заметно тебя потрепали врачи... sphinx_mvСудя по уровню и качеству Ваших знаний, лучше не учиться - только зря время потеряешь... Судя по количеству твоей вброшенной безумной фантазии про html, codebehind, sql, хп, пакеты, логика - тебя нужно срочно закрывать в психбольнице и лечить таблетками. sphinx_mvПочему я вменяемо должен что-то пояснять невменяемому, который работу с внешними устройствами исключил из круга задач, решаемых при помощи веб? Почему я вменяемо должен что-то пояснять шизофренику, который не знает, что такое activex, silverlight, flash и html5? Какой ему веб, он еще с хранимыми процедурами не научился работать. sphinx_mvЭто приложение писали такие как Вы: лозунги при нуле знаний с минус-бесконечной способности думать... Это приложение писали такие как ты, безумные безудержные ламеры, которые ничего не понимают в том, что делают. sphinx_mvТ.е., Вы до сих пор не поняли, что предлагаете?! То есть я до сих пор понял, что предлагаю. sphinx_mvИ, кстати, не только в этом конкретном обсуждении одного очень конкретного десктопного приложения... Детско-юношеский максимализм, однако... Бывает... К сожалению, не у всех проходит... Параною лучше подлечи, а то загнешься ненароком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 09:30 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУ, хватит уже срач разводить. Промохнулся ты с AddWithValue в контексте вызова хранимой процедуры с параметрами в цикле, признай. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 09:52 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAПромохнулся ты с AddWithValue в контексте вызова хранимой процедуры с параметрами в цикле, признай. :) не признаю :) Инициализируй через AddWithValue первое значение и крутись дальше в цикле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:12 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУskyANAПромохнулся ты с AddWithValue в контексте вызова хранимой процедуры с параметрами в цикле, признай. :) не признаю :) Инициализируй через AddWithValue первое значение и крутись дальше в цикле.На хера? Код: c# 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:19 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAНа хера? Рекомендация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:26 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУskyANAНа хера? Рекомендация.Рекомендация гласит: "используйте AddWithValue, когда требуется добавить параметр, задав его имя и значение ". А требуется добавить параметры: а. перед циклом; б. задав им имя, SqlDbType и размер перед циклом; в. значение параметров менять в цикле. На хера использовать метод AddWithValue? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:38 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAРекомендация гласит: "используйте AddWithValue, когда требуется добавить параметр, задав его имя и значение ". Правильно. skyANAА требуется добавить параметры: а. перед циклом; б. задав им имя, SqlDbType и размер перед циклом; в. значение параметров менять в цикле. а. Рекомендация фиолетово, перед чем вызывается AddWithValue. Вызов может быть перед циклом, после цикла, в рекурсионном методе, в ASP.NET MVC приложении, в SQL CLR приложении. Вызов может быть утром или вечером. Так же AddWithValue может писать мужчина или женщина. б. В рекомендации указано про 2 параметра (имя и значение). Добавляй их. А потом доинициализировать всем чем угодно можно в любое время. в. Меняй. До цикла мы создали параметр через AddWithValue и сохранили в переменной, а в цикле юзаем эту переменную. skyANAНа хера использовать метод AddWithValue? :) Рекомендация :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:47 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУ, короче я поржал. Объясни зачем появилась данная рекомендаци, ещё поржу. А ещё лучше пример кода напиши. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:52 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, короче я поржал. Объясни зачем появилась данная рекомендаци, ещё поржу. А ещё лучше пример кода напиши. :) skyANA, я тоже глумлюсь. Чтобы объяснить, зачем оявилась данная рекомендация, нужно обратиться к майкрософту. Черкани им, вместе поржем. Еще один... Какой код тебе написать, как создать параметр через AddWithValue до цикла и в цикле юзать его Value? Ты издеваешься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:55 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=115&tid=1359029]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 375ms |

| 0 / 0 |
