好的,这是对这个问题的一个新的编辑,正如你将在我下面的代码中看到的,我这样做是为了迭代每个项目,然后它应该得到每个项目的选中和未选中的值,然后将它们保存在我的mysql数据库中,但是,当我保存它的时候,它确实保存了,但是所有的项目都保存在布尔值true中,不是我分配的布尔值,应该是布尔值。也就是说,如果一个项目被选中,布尔值应该为真,而一个项目没有被选中,布尔值应该为假,这应该被保存,但是。。。好吧,它真的保存了一切。我该怎么解决这个问题呢?
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);
}
}
任何帮助都非常感谢,谢谢你带着我第四次编辑这篇文章。
1条答案
按热度按时间k3fezbri1#
首先,使用查询参数。你现在的密码很危险。如果您不确定我为什么这么说,请查阅“sql注入”。
现在,使用参数,可以得到:
后来。。。
我猜是因为你提供了
String
对客户的价值BIT
在查询中,转换正在接管并将所有内容转换为TRUE
.