gpt4 book ai didi

c# - CheckedListBoxControl Devexpress C# ---- 将所有项目保存在 MysQL 数据库中

转载 作者:行者123 更新时间:2023-11-30 21:41:52 25 4
gpt4 key购买 nike

好的,这是对这个问题的新编辑,正如您将在下面的代码中看到的那样,我这样做是为了遍历每个项目,然后应该获取每个项目的选中和未选中值,然后保存它们在我的 MySql 数据库中,但是,我保存它的那一刻确实保存了,但所有项目都保存在 boolean true 中,而不是我分配的 bool 值,它应该是 Boolean value .这意味着如果一个项目被选中, bool 值应该为真,而一个项目没有被选中, bool 值应该为假,并且应该被保存,但是......好吧它保存一切为真.我该如何解决我遇到的这个问题?

private void SbtnGuarda_Click(object sender, EventArgs e)
{
try
{
String id = txtId.Text.Trim();
for (int i = 0; i < CLBCpermits.ItemCount; i++)
{
object Row = CLBCpermits.GetItem(i);
DataRowView rew = Row as DataRowView;
Boolean value = Convert.ToBoolean(CLBCpermits.GetItemCheckState((int)rew["SecOptionId"] - 1));
int opti = (int)rew["SecOptionId"];
string qry = string.Format("INSERT INTO TblSecProfile (Id, OptActive, SecOptionId) VALUES ('{0}', '{1}', '{2}');", id, value, opti);
using (MySqlConnection conn = new MySqlConnection(Global.ConnectionStringMySql))
{
conn.Open();

using (MySqlCommand comm = new MySqlCommand(qry, conn))
{
comm.ExecuteNonQuery();
}

conn.Close();
}
}

XtraMessageBox.Show("Permits assigned to profile", "Process Finished", MessageBoxButtons.OK, MessageBoxIcon.Information);
SbtnGuarda.Enabled = false;
SbtnActualiza.Enabled = true;

}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error while giving permits", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}

非常感谢任何帮助,感谢您第四次编辑这篇文章。

最佳答案

首先,使用查询参数。您当前的代码很危险。如果您不确定我为什么这么说,请查找“SQL 注入(inject)”。

现在,使用参数,您将拥有:

var query = "INSERT INTO TblSecProfile (Id, OptActive, SecOptionId) VALUES (@id, @optActive, @secOptionId)";

后来……

comm.Parameters.Add("@id", MySqlDbType.Int32).Value = id;
comm.Parameters.Add("@optActive", MySqlDbType.Bit).Value = value;
comm.Parameters.Add("@secOptionId", MySqlDbType.Int32).Value = opti;
comm.ExecuteNonQuery();

我的猜测是,因为您在查询中为 BIT 类型的列提供了一个 String 值,转换正在接管并将所有内容转换为 TRUE.

关于c# - CheckedListBoxControl Devexpress C# ---- 将所有项目保存在 MysQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51178966/

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