从组合框填充列表视图

Fill a listview from a combobox

我的代码有一些问题,没有从找到的资源中得到任何结果,所以下面是我的例子,当我从组合框中 select 事件 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);

错误:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: Conversion failed when converting the varchar value 'pop' to data type int.

'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);

但是请注意,这种 运行ning 查询的方法容易受到 Sql injection. Maybe think about using parameters 到 运行 您的查询的影响。

希望对您有所帮助