C# 从组合框填充列表视图
我的代码遇到了一些问题,没有从找到的资源中得到任何结果,因此下面是我从组合框中选择一个值时的示例,事件C# 从组合框填充列表视图,c#,listview,combobox,C#,Listview,Combobox,我的代码遇到了一些问题,没有从找到的资源中得到任何结果,因此下面是我从组合框中选择一个值时的示例,事件SelectionChangeCommitted被触发,应该用日期填充我的listview控件,该日期来自与我的select相关的数据库,但我遇到了一个错误,我不知道如何处理它,如果有人能帮助我,我将不胜感激 在构造函数中,我有以下代码: this.medic.SelectionChangeCommitted += new EventHandler(medic_SelectionChangeCo
SelectionChangeCommitted
被触发,应该用日期填充我的listview控件,该日期来自与我的select相关的数据库,但我遇到了一个错误,我不知道如何处理它,如果有人能帮助我,我将不胜感激
在构造函数中,我有以下代码:
this.medic.SelectionChangeCommitted += new EventHandler(medic_SelectionChangeCommitted);
private void medic_SelectionChangeCommitted(object sender, EventArgs e)
{
SqlDataAdapter alegsectie = new SqlDataAdapter("SELECT C.denumire,OC.Data,OC.ora_inc,OC.ora_sf FROM cabinete AS C INNER JOIN orar_clinica AS OC ON c.id_cabinet = OC.id_cabinet INNER JOIN medici AS M ON OC.id_medic = M.id_medic and M.nume =" + medic.SelectedValue, conn);
DataSet listView1 = new DataSet();
alegsectie.Fill(listView1);
错误:
“System.Data.SqlClient.SqlException”类型的未处理异常
发生在System.Data.dll中
其他信息:转换varchar时转换失败
数据类型int的值“pop”
“pop”是组合框中的selectedvalue 如果M.nume是varchar类型,则需要将该值用单引号括起来,才能使sql语句有效:
SqlDataAdapter alegsectie = new SqlDataAdapter("SELECT C.denumire,OC.Data,OC.ora_inc,OC.ora_sf FROM cabinete AS C INNER JOIN orar_clinica AS OC ON c.id_cabinet = OC.id_cabinet INNER JOIN medici AS M ON OC.id_medic = M.id_medic and M.nume ='" + medic.SelectedValue + "'", conn);
但是请注意,这种运行查询的方法容易受到攻击。也许可以考虑使用来运行查询
希望这有帮助M.nume列的类型是什么?并使用参数化查询而不是字符串连接。这将使您的查询为SQL注入攻击打开。M.nume是一个varchar(30),我在SQL server中检查了该查询并将其正确无误。是的,它是一个winform,根据我在组合框中的选择,应该从数据库填充我的listview。WinForms中的listview控件不是绑定控件。将数据存储在名为
listView1
的数据集中不会起任何作用。您必须手动添加项和子项这是关于sql注入漏洞的一个很好的观点。。。再加1!