我正试图把经销商丰田提供的汽车清单显示在网格视图中
我从一个名为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/