C# 根据在列表框中选择的项目获取要查找的MySQL查询

C# 根据在列表框中选择的项目获取要查找的MySQL查询,c#,mysql,listbox,C#,Mysql,Listbox,好的,我有下面的代码。除了这件事,它做了我想要的一切。在此处可以看到查询: string query1 = "UPDATE caregiverdatabse SET child1 = NULL WHERE id='" + selectedCaregiver + "'"; 这只允许我将行中的“child1”列设置为null。我希望它能够通过child1、child2、child3、child4或child5(无需像现在这样直接编码)。 前面的代码: str

好的,我有下面的代码。除了这件事,它做了我想要的一切。在此处可以看到查询:

 string query1 = "UPDATE caregiverdatabse SET child1 = NULL WHERE id='" + selectedCaregiver + "'";                   
这只允许我将行中的“child1”列设置为null。我希望它能够通过child1、child2、child3、child4或child5(无需像现在这样直接编码)。 前面的代码:

string currentChildIndex = "";
string spotOfChange = "";
int index;
string item;
foreach (int i in childrenListBoxDisp.SelectedIndices)
{
    item = childrenListBoxDisp.Items[i].ToString();
}
允许我仅删除链接到MySQL数据库的childrenListBoxDisp中的第一个选定项,并且仅当它位于child1列中时。我希望它能够删除任何childX列,这取决于它选择的项目。这一切都在我心中的疑问中。谢谢你的帮助

代码的其余部分:

            DialogResult dialogResult = 
                    MessageBox.Show("You are about to remove " + item + 
                    " person from the selected caregiver. Continue?", "Are you sure?",
                    MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {

                MySqlConnection connection = new MySqlConnection("Server=" + server +
                    ";" + "Port=" + port + ";" + "Database=" + database + ";" 
                    + "Uid=" + uid + ";" + "Password=" + password + ";");
                connection.Open();

                string query1 = "UPDATE caregiverdatabse SET child1 = NULL WHERE id='"
                                     + selectedCaregiver + "'";
                childrenListBoxDisp.Items.Clear();
                assignNamesToChildList();
                Console.WriteLine("Did we get here , clearing list");
                using (var command = new MySqlCommand(query1, connection))
                {
                    using (var reader = command.ExecuteReader())
                    {

我不确定我是否完全理解你的目标。
item
是否应该成为
childX
中的X?显示要更新的内容的部分架构。表中是否有
child2、child3、child4或child5
列?如果是这样,您就有一些数据库设计问题需要解决。阅读数据库规范化。此外,代码中似乎存在SQL注入漏洞。请仔细阅读参数化。childX是孩子当前所在的位置。现在,所有的查询都允许我手动编码要删除哪个childX插槽。因此,基本上是的项是childrenListBoxDisp.Items[i]中的子项(在列表框中选择的子项)。您可以尝试一些简单的方法(尽管不是很优雅),如
string query1=“UPDATE-CarderDatabase SET-child”+item+”=NULL,其中id=“+SelectedCarder+”
假设
返回在列命名方案中有意义的值。