报错"必须声明变量"

jyb330p42g 2005-03-12 04:04:28
Sub BindDataGrid()
Me.SqlConnection1.ConnectionString = ConfigurationSettings.AppSettings("SqlConnectionString")
Me.cmdgetbyclass.Parameters.Add("@class", ddlclass.SelectedItem.Text)
Me.cmdgetbyclass.CommandText = "select 班级,课程,考试日期,教室名,开始时间,结束时间,监考教师1,监考教师2,监考教师3,监考教师4 from result1 where 班级=@class"
Dim ds As DataSet = New DataSet
Dim dst As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(Me.cmdgetbyclass.CommandText, Me.SqlConnection1)
dst.Fill(ds, "class")
DataGrid1.DataSource = ds
DataGrid1.DataBind()
End Sub

运行后报错为"必须声明变量 '@class'",
我不是已经Me.cmdgetbyclass.Parameters.Add("@class", ddlclass.SelectedItem.Text)了吗?
ddlclass是一个dropdownlist.
大家帮我看看是什么问题.
...全文
109 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyb330p42g 2005-03-14
  • 打赏
  • 举报
回复
奇怪的问题!
jyb330p42g 2005-03-13
  • 打赏
  • 举报
回复


xwdd129(飞翔的心) 的方法在.vb文件里就有错,说"未定义类型Parameter".
jyb330p42g 2005-03-13
  • 打赏
  • 举报
回复


我使过用datareader的方法来绑定datagrid,没有报错的问题,可是在后续的itemdatabound中却会报错
"已有打开的datareader,请先关闭"
xwdd129 2005-03-12
  • 打赏
  • 举报
回复
错!!
Me.cmdgetbyclass.Parameters.Add(new Parameter("@class", ddlclass.SelectedItem.Text))
xwdd129 2005-03-12
  • 打赏
  • 举报
回复
应该是
Me.cmdgetbyclass.Parameters.Add(new Parameters("@class", ddlclass.SelectedItem.Text)) 吧!
机器人 2005-03-12
  • 打赏
  • 举报
回复
SQL Server .NET Framework 数据提供程序不支持使用问号 (?) 占位符向通过 CommandType.Text 的“命令”(Command) 调用的 SQL 语句或存储过程传递参数。在这种情况下,必须使用命名的参数。例如:

SELECT * FROM Customers WHERE CustomerID = @CustomerID

//////////////////////////////////////
public void AddSqlParameters()
{
// ...
// create myDataSet and myDataAdapter
// ...

myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", SqlDbType.VarChar, 80).Value = "toasters";
myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", SqlDbType.Int).Value = 239;
myDataAdapter.Fill(myDataSet);

}
slhuang 2005-03-12
  • 打赏
  • 举报
回复
不好意思,看到了@class
那可能把这两句的顺序倒一下如下试试

Me.cmdgetbyclass.CommandText = "select 班级,课程,考试日期,教室名,开始时间,结束时间,监考教师1,监考教师2,监考教师3,监考教师4 from result1 where 班级=@class"
Me.cmdgetbyclass.Parameters.Add("@class", ddlclass.SelectedItem.Text)
slhuang 2005-03-12
  • 打赏
  • 举报
回复
你的ComandText里没有 @class
yezie 2005-03-12
  • 打赏
  • 举报
回复
越什么?
listhome 2005-03-12
  • 打赏
  • 举报
回复
CSDN真是越来越。。。。。
hchxxzx 2005-03-12
  • 打赏
  • 举报
回复
把class改名,比如@myclass
hedonister 2005-03-12
  • 打赏
  • 举报
回复
必须声明变量 '@class'

换个思路来做不行,比如用占位符

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧