Member 10377426 Ответов: 1

Спрашивая о преимуществах и недостатках цикла внутри элементов управления для выполнения инструкций insert, update, delete SQL


Моя плохая компания, с которой я работал, они делают ERP-системы, они используют delphi и всегда зацикливаются на элементах управления формой, и если элемент управления является текстом, то его имя поля с его значением берется в commandtext, а затем применяется INSERT, UPDATE, DELETE в SQL для быстрой производительности экрана, потому что клиенты всегда просят добавить новые функции, экраны, текстовые поля

Но теперь моя плохая компания перейдет на веб-приложение ASPx, так что они будут делать то же самое, что и в элементах управления, так что у меня слишком много идей в голове Вот пример,

Первая идея : зацикливание элементов управления в каждом экране ( или называется зацикливанием из другого класса)

// For Example Insertion
cmd1 = string.Empty;
cmd2 = string.Empty;
foreach(Control c in Page.Controls){
if (c is TextBox) {
cmd += cmd + c.FieldName + ",";
if (c.FieldType == Integer) {
cmd2 += cmd2+ c.Text + ",";
}

if (c.FieldType == String){
 cmd2 += cmd2 + "'" + c.Text + "',";
 }
}
}
cmd = "INSERT INTO Table_Name(" + cmd + ") VALUES(" + cmd2 + ")";



Вторая Идея ( Моя Идея )
Перетащите компонент на каждый экран,и этот компонент содержит свойство, чтобы получить все текстовые поля страницы ASPx и назначить каждому текстовому полю его равное поле внутри базы данных тоже со свойством.


1. Итак, что мне нужно знать, первая или вторая идея лучше ? Для быстрой & amp; производительности кода и скорости выполнения и интеграции с SQL Server.

2. А Какие Преимущества / Недостатки У Этих Идей ? (Циклические Элементы Управления, Идея Компонента )

3. Есть Ли Здесь Какая-Нибудь Лучшая И Быстрая Альтернативная Идея, Которую Члены Клуба Могут Мне Показать ? Для быстрого перетаскивания для разработчиков, чтобы создать новый экран без единой вставки, обновления, удаления оператора на каждой странице !!

Что я уже пробовал:

Я Думаю, Что Вторая Идея Лучше ? А Может, И Нет.

[no name]

Ни одна из этих идей не очень хороша. А создание SQL-запросов путем объединения строк-еще худшая идея.

1 Ответов

Рейтинг:
1

OriginalGriff

Если этот код является представителем существующего кода вашей компании, то вам повезло, что вы все еще находитесь в бизнесе. Никогда не объединяйте строки для построения SQL-команды. Это оставляет вас широко открытыми для случайной или преднамеренной атаки SQL-инъекции, которая может уничтожить всю вашу базу данных. Вместо этого всегда используйте параметризованные запросы.

Я бы предложил, чтобы кто-то в вашей компании закрылся с большой книгой по SQL, C# и общему программированию и начал изучать, как это должно быть сделано, вместо того, чтобы гадать и надеяться, что это не вызовет проблем. Потому что, судя по виду этого кода, никто никогда не садился и не проектировал что-либо правильно.

Нет смысла предлагать вам "лучший выход" из двух очень плохих идей, когда есть так много других, которые в корне неверны и нуждаются в радикальном исправлении, чтобы обеспечить выживание компаний в первую очередь.


[no name]

О'кей, я знаю ? Но если бы ты был на моем месте ? и есть много клиентов, как вы можете сделать для них 20 экранов в неделю ? весь наш экран в основном состоит из добавления, удаления, обновления ?

И что ? какая твоя идея. ваш ответ все еще бесполезен, человек, я знаю параметры, я знаю SQL-запросы ?

[no name]

ЧТО ТАКОЕ FASTTTTTTTT СПОСОБ ДОСТИЧЬ МНОГО МНОГО ЭКРАНОВ ??? мне нужна быстрая идея ????!!!!