Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУskyANAМСУ, короче я поржал. Объясни зачем появилась данная рекомендаци, ещё поржу. А ещё лучше пример кода напиши. :) skyANA, я тоже глумлюсь. Чтобы объяснить, зачем оявилась данная рекомендация, нужно обратиться к майкрософту. Черкани им, вместе поржем.Вообще-то в твой же цитате рекомендации это написано, жжёшь. Сам-то читал её? МСУЕще один... Какой код тебе написать, как создать параметр через AddWithValue до цикла и в цикле юзать его Value? Ты издеваешься? Ага, именно этот код, только не забудь, что надо задать ещё и тип и размер. Хотя посмотреть как ты заюзаешь AddWithValue до цикла тоже бы хотелось. Слабо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:59 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУ, Модератор: Бери, хотя бы, в спойлер свои мегапосты. К тому же, не стоит переходить на личности. Это не только к тебе, а ко всем участникам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 10:59 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Ладно, приведу свой пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:06 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAВообще-то в твой же цитате рекомендации это написано, жжёшь. Сам-то читал её? Вообще-то я про цитату на рекомендацию и говорю. Тупишь ты однако skyANAАга, именно этот код, только не забудь, что надо задать ещё и тип и размер. Хотя посмотреть как ты заюзаешь AddWithValue до цикла тоже бы хотелось. Слабо? Пипец, ладно бы тот пионер хочет кода, но от тебя я такого не ожидал :) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. [/SRC] Надеюсь тебе не надо еще проверок на DBNull.Value / null добавить? :) Итого: мы создали параметр через честный AddWithValue, согласно документации. Доинициализировали его доп. параметрами, в том же SqlParameter в перегруженных конструкторах далеко не всё есть. В чём вопрос? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:13 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Сорри за тег SRC, еще раз: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:14 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAЛадно, приведу свой пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Гавнокод :) Зачем в каждой итерации постоянно обращатсья к коллекции Parameters, осуществляя поиск по ключу? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. P.S. Скиана, когда я научу тебя думать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:18 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mv Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. sphinx_mv, поржал над твоим гавнокодом За такой код нужно увольнять, минимум. Про отбивание линейкой твоих рук я как бы умалчиваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:29 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУ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" в качестве вью для код бехайнда - только твое воспаленное сознание может придумать. Учи матчасть, неудачник. И это недоразумение утверждает, что оно "читает документацию"... http://support.microsoft.com/kb/303247 Code-BehindCode-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. Финиш. PS. Некотое время назад один мой знакомый завлаборатории сказал: ничего на свете хуже нету, чем дурак с инициативой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:38 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУsphinx_mv Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. sphinx_mv, поржал над твоим гавнокодом За такой код нужно увольнять, минимум. Про отбивание линейкой твоих рук я как бы умалчиваю.Ваша "квалификация" и "опыт" совершенно не оспариваются (по причине полного отсутсвия). И то, что Вы ни разу не сталкивались с поведением параметров при присвоении им null-значения (не путать с DBNull) - это в очередной раз это доказывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:41 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
sphinx_mvИ это недоразумение утверждает, что оно "читает документацию"... http://support.microsoft.com/kb/303247 Твой клинический случай особый, попробую трепанировать твой череп еще разок. Вот код из документации: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вопрос в лоб. Это всё HTML? sphinx_mvФиниш. Финиш может быть только в твоем сознании, которое не понимает сути. sphinx_mvPS. Некотое время назад один мой знакомый завлаборатории сказал: ничего на свете хуже нету, чем дурак с инициативой... Правильно, согласен с твоим знакомым. Поэтому тебе пока рано писать про .NET на форумах. sphinx_mvВаша "квалификация" и "опыт" совершенно не оспариваются (по причине полного отсутсвия). И то, что Вы ни разу не сталкивались с поведением параметров при присвоении им null-значения (не путать с DBNull) - это в очередной раз это доказывает. Моя квалификация и опыт подсказывает мне, что есть такое понятие в дотнете, как тернарность. И твой гавнокод пишется за 2 строчки кода. Код: c# 1. 2. Упс? P.S. Так что ты там хотел сэкономить на строчках кода по поводу AddWithValue? P.S2. По вопросу AddWithValue я тебе привел банальный - вопросы будут, клоун? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 11:50 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУP.S. Скиана, когда я научу тебя думать? А вообще прикольно получается. Скианыч решил поднаехать слегонца и попытался прессануть МСУ, требуя от оного признаний в неправоте по поводу AddWithValue. МСУ лениво отмахивался от примеров, ссылаясь на то, что всё это банальность и нафига вам всем код. В рузультате: 1. МСУ-таки написал код с AddWithValue, ничем не уступающему аналогам 2. Скианыч слегонца обосрался со своим кодом 3. И sphinx_mv. Ну а что sphinx_mv, он как был ламером, так им и остался. Но парня тоже не зря опустили в навозную кучу, хоть начал понимать, что такое тернарная условная операция. Уже лучше, гавнокодить будет меньше. Занавес ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:11 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
offtop Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Вот меня всегда озадачивало, почему народ не юзает x CommandBuilder.DeriveParameters(): Код: c# 1. 2. 3. 4. 5. 6. 7. ? О данной функциональности не дочитали в букваре? Или то, что он прибит к конкретному провайдеру ( Sql CommandBuilder.DeriveParameters()/ OleDb CommandBuilder.DeriveParameters()/ Oracle CommandBuilder.DeriveParameters()/etc)? Ведь сразу снимается куча вопросов , связанных наименованием (с " @ " или без), порядком (RETURN_VALUE - первый), типом и т.д. и т.п... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:14 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Ex_SoftВот меня всегда озадачивало, почему народ не юзает x CommandBuilder.DeriveParameters() Тут двоякая ситуация, Экс. С одной стороны да, удобно. С другой стороны - дополнительное обращение к базе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:28 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУдополнительное обращение к базе данных. И это все? (в смысле: "Почему не юзают?") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:29 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Ex_SoftВедь сразу снимается куча вопросов , связанных наименованием (с " @ " или без), порядком (RETURN_VALUE - первый), типом и т.д. и т.п Вот поэтому сто раз говорю, что в топку все эти DBCommand, это прошлый век. Курим нормальную ORM, оперируем типизированными объектами и не паримся. EF, L2S и NH мало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:31 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Ex_SoftМСУдополнительное обращение к базе данных. И это все? (в смысле: "Почему не юзают?") Выше ответил - гумно всё это. Датасеты туда же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:31 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Ex_SoftИ это все? (в смысле: "Почему не юзают?") А этого мало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:32 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУА этого мало? Ну, я на мой вопрос хотел получить, так сказать, как бы количественную составляющую, а не качественную А-ля: "...Огласите весь список, пожалуйста..." © Вопрос о "критичности" того или иного аргумента меня не интересует. Голая статистика, так сказать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 12:48 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
Ex_Soft, когда работал через ADO.NET, то написал свой DbManager - обертку над System.Data.Common классами. До System.Data.Common.DbCommandBuilder не добрался, тем более у него отсутсвует метод DeriveParameters. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 13:51 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУskyANAВообще-то в твой же цитате рекомендации это написано, жжёшь. Сам-то читал её? Вообще-то я про цитату на рекомендацию и говорю. Тупишь ты однако Кто ещё тупит :) Цитирую оригинал, перевод которого ты тут привёл:Remarks AddWithValue replaces the SqlParameterCollection.Add method that takes a String and an Object. The overload of Add that takes a string and an object was deprecated because of possible ambiguity with the SqlParameterCollection.Add overload that takes a String and a SqlDbType enumeration value where passing an integer with the string could be interpreted as being either the parameter value or the corresponding SqlDbType value. Use AddWithValue whenever you want to add a parameter by specifying its name and value. То есть сделать очередную перегрузку метода Add уже не получалось и пришлось фактически перегрузку метода обозвать по своему. Таким образом ты рекомендуешь всегда использовать один из перегруженных вариантов вместо других. Может напишешь в Майкрософт, что проблему-то можно было решить иначе: тупо выкинуть перегруженные методы Add и оставить один, что принимает String и Object? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:00 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУСорри за тег SRC, еще раз: Код: c# 1. 2. 3. Гы... То есть шесть строк вместо двух, круто чё :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:01 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAу него отсутсвует метод DeriveParameters. уже было: Ex_Softто, что он прибит к конкретному провайдеру ( Sql CommandBuilder.DeriveParameters()/ OleDb CommandBuilder.DeriveParameters()/ Oracle CommandBuilder.DeriveParameters()/etc) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:01 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУskyANAЛадно, приведу свой пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Гавнокод :) Зачем в каждой итерации постоянно обращатсья к коллекции Parameters, осуществляя поиск по ключу? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. P.S. Скиана, когда я научу тебя думать? О, великий оптимизатор, ты крут! IndexOf по листу из двух элементов это же так медленно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:04 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУМСУP.S. Скиана, когда я научу тебя думать? А вообще прикольно получается. Скианыч решил поднаехать слегонца и попытался прессануть МСУ, требуя от оного признаний в неправоте по поводу AddWithValue. МСУ лениво отмахивался от примеров, ссылаясь на то, что всё это банальность и нафига вам всем код. В рузультате: 1. МСУ-таки написал код с AddWithValue, ничем не уступающему аналогам 2. Скианыч слегонца обосрался со своим кодомВообще-то у меня совещание было. Твой код - это использование того же метода Add, только на четыре строки больше. На фига? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:08 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAКто ещё тупит :) Цитирую оригинал, перевод которого ты тут привёл... Да нет, ты-таки тупишь :) Что тебе не ясно из рекомендаций MS, можешь ответить на вопрос? А то, как устроено в реализации метода - монопенисуально. Никто не мешает в следующей версии FW ввести коррективы в реализацию - это так, к слову, конечно. Я о том, что физический смысл ковыряния в реализациях равен нулю. skyANAТо есть сделать очередную перегрузку метода Add уже не получалось и пришлось фактически перегрузку метода обозвать по своему. Читай выше. skyANAТаким образом ты рекомендуешь всегда использовать один из перегруженных вариантов вместо других. Не я рекомендую, а MS рекомендует: RTFMПерегруженной версией метода Add, принимающая строку и объект пренебрегали из-за возможного конфликта с перегруженной версией SqlParameterCollection.Add, принимающей String и значение из перечисления SqlDbType, поскольку передача целого значения в строке может интерпретироваться как значение параметра или соответствующее значение SqlDbType. Используйте AddWithValue, когда требуется добавить параметр, задав его имя и значение. skyANAМожет напишешь в Майкрософт, что проблему-то можно было решить иначе: тупо выкинуть перегруженные методы Add и оставить один, что принимает String и Object? :) Может и напишу. Если время будет :) skyANAМСУСорри за тег SRC, еще раз: Код: c# 1. 2. 3. Гы... То есть шесть строк вместо двух, круто чё :) Ты код не тот процитировал, 6 строк - это про оператор "??". Во-вторых, "кручо чё": писать лапшекод и ифами, или писать человеческий код с тернарными операторами. Гавнокодерам не понять, забей. skyANAВообще-то у меня совещание было. Твой код - это использование того же метода Add, только на четыре строки больше. На фига? :) Почему на 4, откуда эта цифра? Это не просто использование метода Add, это еще и следование рекомендациям :) Ex_SoftskyANAу него отсутсвует метод DeriveParameters. уже было: Ex_Softто, что он прибит к конкретному провайдеру ( Sql CommandBuilder.DeriveParameters()/ OleDb CommandBuilder.DeriveParameters()/ Oracle CommandBuilder.DeriveParameters()/etc) +1, что-то он не в кассу сегодня постит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:12 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУ, ладно, я понял, ты включил упрямого дурочка. Считай замечание о том, что метод AddWithValue сделали потому, что нельзя уже было перегрузить метод Add для случая, когда надо задать только имя и значение параметра, и предлагают его использовать именно в этом случае, великой рекомендацией использовать метод Всегда, дело твоё :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:25 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУskyANAпропущено... Гы... То есть шесть строк вместо двух, круто чё :) Ты код не тот процитировал, 6 строк - это про оператор "??". Во-вторых, "кручо чё": писать лапшекод и ифами, или писать человеческий код с тернарными операторами. Гавнокодерам не понять, забей.Код я процитировал тот. В твоём коде добавление одного параметра с указанием его типа размера занимает 3 строки, следовательно добавление двух параметров занимает 6 строк. Оператор "??" и лапшекод с ифами - это не ко мне. Так что кто кого понять не может, это ещё вопрос :) МСУskyANAВообще-то у меня совещание было. Твой код - это использование того же метода Add, только на четыре строки больше. На фига? :) Почему на 4, откуда эта цифра? Это не просто использование метода Add, это еще и следование рекомендациям :)У меня добавление параметров занимает 2 строки, у тебя 6, почему на 4? Попробуй вычитанием воспользоваться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 14:47 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, ладно, я понял, ты включил упрямого дурочка. Не, мужик, это ты криво вопросы задаешь. skyANAСчитай замечание о том, что метод AddWithValue сделали потому, что нельзя уже было перегрузить метод Add для случая, когда надо задать только имя и значение параметра, и предлагают его использовать именно в этом случае, великой рекомендацией использовать метод Всегда, дело твоё :) В идеале было бы отлично перегрузить несколькими вариантами AddWithValue. Вся эта бадяга с "косячностью" Add зародилась еще со времен первых двух версий дотнета (1.0 и 1.1), где унылые кодирующие обезьянки в виде индусов очень неудобно и опасно перегрузили Add. Со следующей версии дотнета (2.0) решили немного долатать механизм, и не придумали ничего лучше, как добавить AddWithValue. Но видно испугались сделать еще парочку (с типом, хотя бы) и оставили всё как есть, порекомендовав именно этот подход. skyANAКод я процитировал тот. В твоём коде добавление одного параметра с указанием его типа размера занимает 3 строки, следовательно добавление двух параметров занимает 6 строк. "Следовательно" - это унылый вывод. В моем коде был только один параметр (3 строки), а то, что ты там что-то перемножил на два - твои проблемы. Либо выражайся яснее, либо не выражася вовсе. Ну да, кода для инициализации больше, и что? Чере CreateParameter еще будет больше на 2 строчки, но тем не менее - это универсальный и хороший способ создания "своих" параметров, заложенных аж в DbCommand. skyANAО, великий оптимизатор, ты крут! IndexOf по листу из двух элементов это же так медленно :) Это полный алес капут. И после этого ты мне будешь что-то говорить о моей неправоте? Мужик, ты аццки жжешь! Зачем в цикле постоянно осуществлять поиск через IndexOf? Ппц просто... skyANAОператор "??" и лапшекод с ифами - это не ко мне. Так что кто кого понять не может, это ещё вопрос :) Ок, я думал ты прооператор говорил. skyANAУ меня добавление параметров занимает 2 строки, у тебя 6, почему на 4? Попробуй вычитанием воспользоваться :) Выше написал, выражайся яснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 15:17 |
|
||
|
DataSet и SQL Server
|
|||
|---|---|---|---|
|
#18+
МСУsphinx_mvИ это недоразумение утверждает, что оно "читает документацию"... http://support.microsoft.com/kb/303247 Твой клинический случай особый, попробую трепанировать твой череп еще разок. Вот код из документации: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вопрос в лоб. Это всё HTML? Т.е., мусье теги читать не умеет? Или, может, мусье не в курсе, что находится между тегами <HTML>...</HTML>? Подсказка из зала - разметка страницы... И да: это - HTML (даже Майкрософт "его" так называет). И, кстати, мусье, почему-то забыл взять ВТОРУЮ "часть" ЭТОГО примера от Microsoft: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Может, мусье, хотя бы с трех (ну, ладно - с пяти) раз угадает, ЧТО расположено во второй части примера из непрочитанной им документации? НЕТ! НЕ УГАДАЕТ!!! Мусье слишком рано взялся за изучение модели "code-behind"... ЗЫ. Мусье ТОЧНО не перепутал форум? МСУsphinx_mvФиниш. Финиш может быть только в твоем сознании, которое не понимает сути. Улыбнуло... МСУsphinx_mvPS. Некотое время назад один мой знакомый завлаборатории сказал: ничего на свете хуже нету, чем дурак с инициативой... Правильно, согласен с твоим знакомым. Поэтому тебе пока рано писать про .NET на форумах. Вам памперс уже поменяли? Пора повторить эту процедуру... МСУsphinx_mvВаша "квалификация" и "опыт" совершенно не оспариваются (по причине полного отсутсвия). И то, что Вы ни разу не сталкивались с поведением параметров при присвоении им null-значения (не путать с DBNull) - это в очередной раз это доказывает. Моя квалификация и опыт подсказывает мне, что есть такое понятие в дотнете, как тернарность. И твой гавнокод пишется за 2 строчки кода. Код: c# 1. 2. Упс? УРА! МСУ сделал плохо читаемый и, соотвественно, не менее плохо сопровождаемый код, но зато съэкономил процессору пару тактов "машинного времени"!!! Орден ему за это!.. Ну, хотя бы медаль... МСУP.S. Так что ты там хотел сэкономить на строчках кода по поводу AddWithValue? Я же говорю: МСУ - ЛАМЕР! На проверке правильности входных данных НЕ ЭКОНОМЯТ! То есть - ВООБЩЕ! Хотите ходить по граблям - никто не запрещает: можете исключить эту проверку. Но потом не жалуйтесь на разбитый лоб и отбитые яйца. И, специально для ламеров, "которые не в курсе": проверка валидности данных при использовании AddWithValue должна быть точно такой же. А еще ламеры могут не оборачивать исполняемые блоки в try-catch-finally и не выполнять обработку исключительных ситуаций... Это же ж сколько нажатий на клавишы съэкономится!.. МСУP.S2. По вопросу AddWithValue я тебе привел банальный - вопросы будут, клоун? По сути, к ВАМ вопросов я не только больше НЕ ИМЕЮ, но и никогда особо и НЕ ИМЕЛ: "дуракам с инициативой" вопросов не задают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2012, 15:30 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1359029]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
106ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 455ms |

| 0 / 0 |
