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+”
假设项
返回在列命名方案中有意义的值。