求救,我是新手,在查询中可以使用变参查询,可以把表名用变参吗?

fanmeng 2003-06-30 11:17:55
如:
string mySelectQuery="select * from @topic_tablename where versp_name=@vsname";
OleDbDataAdapter mycommand=new OleDbDataAdapter(mySelectQuery,topic_connection);
mycommand.SelectCommand.Parameters.Add(new OleDbParameter("@topic_tablename",OleDbType.LongVarChar,20));
mycommand.SelectCommand.Parameters.Add(new OleDbParameter("@vsname",
OleDbType.LongVarChar,20));
mycommand.SelectCommand.Parameters["@topic_tablename"].value=topic_table_name;
mycommand.SelectCommand.Parameters["@vsname"].value=verspname;
DataSet ds=new DataSet();
mycommand.Fill(ds,@topic_table_name);//运行时,错
DataGrid_topic.DataSource=ds.Tables[@topic_table_name].DefaultView;
DataGrid_topic.DataBind();
详细错误信息:
查询语法错误。查询子句不完整。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 查询语法错误。查询子句不完整。

源错误:


行 71:
行 72: DataSet ds=new DataSet();
行 73: mycommand.Fill(ds,@topic_table_name);
行 74: DataGrid_topic.DataSource=ds.Tables[@topic_table_name].DefaultView;
行 75: DataGrid_topic.DataBind();


源文件: d:\fs\myweb\fjr\showtopic.aspx.cs 行: 73

堆栈跟踪:


[OleDbException (0x80040e14): 查询语法错误。查询子句不完整。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +154
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +57
System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +5
System.Data.Common.DbDataAdapter.Fill(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +121
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +36
fjr.showtopic.show_topic_of_versp(String mainverspname, String verspname) in d:\fs\myweb\fjr\showtopic.aspx.cs:73
fjr.showtopic.Page_Load(Object sender, EventArgs e) in d:\fs\myweb\fjr\showtopic.aspx.cs:27
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +29
System.Web.UI.Page.ProcessRequestMain() +724
谢谢!
...全文
24 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sacrefies 2003-06-30
  • 打赏
  • 举报
回复
表名啊。。。这个是不行的。。。可惜~
fanmeng 2003-06-30
  • 打赏
  • 举报
回复
存贮过程,就能把表明用做参数吗?
详细点好吗,谢谢
sacrefies 2003-06-30
  • 打赏
  • 举报
回复
写存储过程,你就可以使用参数了~
zjjszw 2003-06-30
  • 打赏
  • 举报
回复
mycommand.Fill(ds);
DataGrid_topic.DataSource=ds.Tables[0].DefaultView;
zjjszw 2003-06-30
  • 打赏
  • 举报
回复
mycommand.Fill(ds);
試試
虚拟过客 2003-06-30
  • 打赏
  • 举报
回复
可以用参数,你看看书吧

62,039

社区成员

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

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

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

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