我想知道当值在数据库中时,如何在dtg_ksluzby中的列[3]中选中复选框。
klisluz(我从中获取数据的表)包含列,id,子键(即= vyberradek),text,pocet 这是插入db。
的代码 foreach (DataGridViewRow row in dtg_ksluzby.Rows)
{
if (Convert.ToBoolean(row.Cells[3].Value) == true)
{
SqlCommand prikaz2 = new SqlCommand("INSERT INTO klisluz(text,pocet,akce,subkey) values(@val1,@val2,@val3,@val4) ", spojeni);
prikaz2.Parameters.AddWithValue("@val1", row.Cells["text"].Value);
prikaz2.Parameters.AddWithValue("@val2", row.Cells["pocet"].Value);
prikaz2.Parameters.AddWithValue("@val3", row.Cells["akce"].Value);
prikaz2.Parameters.AddWithValue("@val4", max + 1);
spojeni.Open();
prikaz2.ExecuteNonQuery();
spojeni.Close();
}
}
现在,我想在项目插入数据库时选中复选框。 有人会给我一个线索吗?
我想我可以算算这个算法,但是我不知道如何把它变成代码我认为我可以像这样做:
SqlCommand novyprikaz3 = new SqlCommand("SELECT * FROM klient WHERE ID_K=" + vyberradek, spojeni); //vyberradek selects row ID
spojeni.Open();
SqlDataReader precti = novyprikaz.ExecuteReader();
if (precti.Read())
{
If text in (row where ID_K=number which comes from vyberradek) is in dtg_ksluzby then check the checkbox in the same row
}
我想用它来让USER知道他在编辑之前选择了哪些列 非常感谢提前。
答案 0 :(得分:2)
for (int i = 0; i < dtg_ksluzby.Rows.Count; i++)
{
var row = dtg_ksluzby.Rows[i];
using(var novyprikaz2 = new SqlCommand("SELECT * FROM klient WHERE ID_K=" + vyberradek, spojeni))
{
spojeni.Open();
SqlDataReader precti2 = novyprikaz2.ExecuteReader();
if (precti2.HasRows)
{
row.Cells[3].Value = true;
}
}
}
您必须相应地将vyberradek
更改为行内容。
答案 1 :(得分:1)
尝试count
并使用ExecuteScalar
,如下所示
SqlCommand novyprikaz3 = new SqlCommand("SELECT count(1) FROM klient WHERE ID_K=" + vyberradek, spojeni); //vyberradek selects row ID
spojeni.Open();
Int32 cnt = (Int32) novyprikaz.ExecuteScalar();
如果cnt大于0,则项目存在。