Visual studio 2013 &引用;表达式中的类型不匹配。”;Visual Studio 2013与Access 2013 DB

Visual studio 2013 &引用;表达式中的类型不匹配。”;Visual Studio 2013与Access 2013 DB,visual-studio-2013,ms-access-2013,Visual Studio 2013,Ms Access 2013,我正在尝试做一个简单的“高级搜索按钮”。此项目正在1个数据库中使用3个表。页面已加载,但当我在网站的文本框中输入值后尝试点击“搜索按钮”时,它会给我“表达式中的类型不匹配”。 这是搜索按钮的代码 SqlDataSource1.SelectCommand = "SELECT m.musterino, m.adi, m.soyadi, m.adres, u.urunno, u.parca, u.marka, u.modelisim, u.modelno, u.fiyat, s.satisno

我正在尝试做一个简单的“高级搜索按钮”。此项目正在1个数据库中使用3个表。页面已加载,但当我在网站的文本框中输入值后尝试点击“搜索按钮”时,它会给我“表达式中的类型不匹配”。

这是搜索按钮的代码

    SqlDataSource1.SelectCommand = "SELECT m.musterino, m.adi, m.soyadi, m.adres, u.urunno, u.parca, u.marka, u.modelisim, u.modelno, u.fiyat, s.satisno, s.odeme, s.urun, s.garanti, s.tarih FROM musteri m, satis s, urunler u WHERE m.musterino = s.musterino AND u.urunno = s.urunno AND s.satisno = @ara"

    SqlDataSource1.SelectParameters.Add("ara", TextBox1.Text)

    SqlDataSource1.Select(System.Web.UI.DataSourceSelectArguments.Empty)

如果字段
s.satisno
为数字类型,则此行不明确

 SqlDataSource1.SelectParameters.Add("ara", TextBox1.Text)
添加参数时不指定其类型。因此,您可以对其保留任何类型的解释,因为您添加了一个字符串,所以可能会出现一些不符合您预期的情况

我将尝试更具体地说明为参数传递的值的类型

 SqlDataSource1.SelectParameters.Add("ara", DbType.Int32, TextBox1.Text)

字段的数据类型是什么?我打赌这不是字符串。m.musterino、s.satisno和u.urunno实际上是每个表中的自动编号。但在名为“satis”的桌子上,它们被标记为数字。编辑这些也是每个表的主键,感谢您的快速响应。我只是尝试插入“DbType.Int32”,它要求我插入“System.Data”,我这样做了。当我运行应用程序时,它会再次启动,但在其中键入数字或文本将导致相同的结果。另外,我想提一提的是,我不想限制我的搜索只有数字。我想在必要的地方通过数字和文本进行搜索。