gpt4 book ai didi

c# - 将数据库中的所有列自动添加到 INSERT INTO 查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:08 24 4
gpt4 key购买 nike

我有一个 WPF 窗口,我可以在其中将客户添加到数据库。标签和文本框是根据数据库表中的列数以编程方式添加的。

现在,如果我在文本框中放置一些文本,我想将所有这些文本保存在数据库中。

到目前为止我的代码是:

try {
for (int i = 0; i < textboxes.Count; i++)
{
var value = textboxes[i];
var column = labels[i];
MySqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "INSERT INTO firmenkunden ("+column.Name+") VALUES ('"+value.Text+"')";
cmd.ExecuteNonQuery();
}
MessageBox.Show("Der Firmenkunde wurde erfolgreich erstellt.");
this.Close();
}
catch (MySqlException ex) {
MessageBox.Show(ex.Message);
}

但这行不通。现在看起来像这样: enter image description here

有人知道我该怎么做吗?

最佳答案

问题在于您如何创建要在数据库上执行的查询。看,对于每一列你正在执行插入,但你需要将所有列发送到命令,所以尝试这样做:

   var columns = new System.Text.StringBuilder();
var values = new System.Text.StringBuilder();
MySqlCommand cmd = connection.CreateCommand();
for (int i = 0; i < textboxes.Count; i++)
{
var value = textboxes[i];
var column = labels[i];
cmd.Parameters.AddWithValue("@" + column.Name, value.Text);
string complement = (i == 0 ? string.Empty : ",");
columns.Append(complement + column.Name);
values.Append(complement + "@" + column.Name);
}
cmd.CommandText = "INSERT INTO firmenkunden (" + columns.ToString() + ") VALUES (" + values.ToString() + ")";

您必须做的另一件事是更喜欢使用 MySqlParameters 而不是在查询中连接值。 Here解释为什么,here如何使用它。

希望对您有所帮助。

关于c# - 将数据库中的所有列自动添加到 INSERT INTO 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com