首页 > 解决方案 > 当我知道值不是空白时,Asp.net 参数显示为空

问题描述

传递我知道存在的值时出现以下错误。

System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'

我正在填充一个具有单个输出的网格视图。然后我使用它来填充新的网格视图。

            OleDbConnection conn1 = new OleDbConnection();
        string path1 = Server.MapPath("Price_List.xlsx");
        String connString1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 12.0;IMEX=1;'";
        conn1.ConnectionString = connString1;
        conn1.Open();
        OleDbCommand cmd1 = new OleDbCommand("select * from [Sheet1$] Where [Meter Type] =" + GridView1.Rows[0].Cells[0].Text, conn1);
        OleDbDataReader rd1 = cmd1.ExecuteReader();


        GridView2.DataSource = rd1;
        GridView2.DataBind();

我知道代码

GridView1.Rows[0].Cells[0].Text

显示了网格视图 1 中的单出,因为我在文本框中对此进行了测试,并显示了我要显示的内容。

我看不出哪里出错了。

标签: cssasp.netexcelgridview

解决方案


假设 [Meter Type] 是一个字符串字段,您在 sql 中缺少单引号:

OleDbCommand cmd1 = new OleDbCommand("select * from [Sheet1$] Where [Meter Type] = '" + GridView1.Rows[0].Cells[0].Text + "'", conn1);


推荐阅读