Как я могу сделать действительную команду SQL из этого GUI? - PullRequest
1 голос
/ 28 февраля 2020

Я пытаюсь создать программу поддержки, которая может вносить изменения в текущий запрос, выполняя команды UPDATE в базе данных. GUI выглядит следующим образом:

GUI

С помощью этого GUI сторонник может редактировать нужные поля заявки в службу поддержки. Моя проблема в том, что сторонник должен иметь возможность оставить текстовое поле пустым, чтобы не изменять эту информацию.

Теперь у меня есть:

$id = $textBox1.text
$supporter = $textBox2.text
$description = $textBox3.text

if ($radioButton1.Checked)
{
    $status = 1
}elseif ($radioButton2.Checked)
{
    $status = 0
}else
{
    #don't change anything with status
}

$sqlcommand = "
UPDATE [tickettable]
SET supporter = $supporter, description = $description, status = $status
WHERE ID = $id
"

С моим код, сторонник должен ввести всю информацию снова, даже если он хочет только изменить описание, например. Есть ли способ, как сделать автоматическую команду SQL?

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

Ответы [ 3 ]

1 голос
/ 02 марта 2020

Я решил свою проблему. Это не прямой ответ на мой вопрос, , но это другой (может быть, даже лучше) подход . Я сделал новую кнопку рядом с полем «ID» с именем «load», которая записывает текущие значения полей в поля ввода (поскольку информация уже содержится в базе данных)

Теперь мой Программа работает следующим образом:

После ввода ID и нажатия «загрузить», программа считывает текущую информацию из БД и записывает ее в поля ввода. Таким образом, команда SQL будет всегда одинаковой (поскольку мы можем обновить все поля), а на стороне PowerShell Мне не нужно писать 100 операторов if / else.

GUI image

0 голосов
/ 28 февраля 2020

Может быть, вы можете использовать что-то вроде этого

$sqlcommand = "
UPDATE [tickettable]
WHEN $supporter IS NOT NULL
THEN SET supporter = $supporter
WHEN $description IS NOT NULL sdf
THEN description = $description
WHEN $status IS NOT NULL 
THEN SET status = $status
WHERE ID = $id
"
0 голосов
/ 28 февраля 2020

Я думаю, что единственный способ - это создать несколько операторов if else, если вы не хотите тратить недели. :) Обратите внимание, что Я не охватил все возможные комбинации! Это всего лишь пример того, как вы могли бы это сделать. Вы просто должны охватить все дела.

$id = $textBox1.text
$supporter = $textBox2.text
$description = $textBox3.text

if ($radioButton1.Checked)
{
    $status = 1
}elseif ($radioButton2.Checked)
{
    $status = 0
}else
{
    #don't change anything with the status
}
if ($supporter != "" -and $description != "" -and $status != ""){
     $setcommand = "SET supporter = $supporter, description = $description" status = $status
}
elseif ($supporter == "" -and $description != "" -and $status != ""){
     $setcommand = "SET description = $description, status = $status"
}
elseif ($supporter == "" -and $description != "" -and $status == ""){
     $setcommand = "SET description = $description"
}
elseif ($supporter == "" -and $description == "" -and $status == ""){
     Write-Host "Nothing to do"
}

$sqlcommand = "
UPDATE [tickettable]
$setcommand
WHERE ID = $id
"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...