我正试图把经销商丰田提供的汽车清单显示在网格视图中
我从一个名为degenerator.accdb的数据库中获取信息
表的名称是table1
该表有两列:dealer和car
但我一直有这个错误
“附加信息:没有为一个或多个必需参数提供值。”
当我用它显示“经销商”列表时,代码运行良好
但是当我试图显示经销商提供的汽车列表时,它显示了我上面提到的错误

          using System;
          using System.Collections.Generic;
          using System.Linq;
          using System.Web;
          using System.Web.UI;
          using System.Web.UI.WebControls;
          using System.Data;
          using System.Data.OleDb;

          public partial class toyota : System.Web.UI.Page
          {
             protected void Page_Load(object sender, EventArgs e)
             {
                 OleDbConnection connect = new OleDbConnection();

                 connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;
                 Data Source=C:\Users\Student\Documents\Visual Studio 2013\WebSites\WebSite1\Dealership.accdb";
                 connect.Open();

                 OleDbCommand cmd = new OleDbCommand("SELECT Car FROM Table1 WHERE dealer = Toyota", connect);

                 OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);

                 DataTable dt = new DataTable();

                 adapter.Fill(dt);

                 GridView1.DataSource = dt;
                 GridView1.DataBind();
             }
         }

最佳答案

您应该正确引用变量:

SELECT Car FROM Table1 WHERE dealer = 'Toyota'

而不是:
SELECT Car FROM Table1 WHERE dealer = Toyota

现在它试图将字段dealer与名为Toyota的字段相匹配,我想您应该检查一下toyota的值。
你也可以参数化你的查询,这样你下次就可以很容易地得到bmw:
SELECT Car FROM Table1 WHERE dealer = ?

在你的简历里:
OleDbCommand cmd = new OleDbCommand("SELECT Car FROM Table1 WHERE dealer = ?", connect);
cmd.Parameters.AddWithValue("?", "Toyota");

关于c# - 数据库访问麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36859565/

10-15 23:06