首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OracleCommand SQL参数不工作

OracleCommand SQL参数不工作
EN

Stack Overflow用户
提问于 2018-06-13 07:04:10
回答 1查看 470关注 0票数 1

我的代码看起来如下:

代码语言:javascript
复制
String Tablei= "PHGR_PHYS_GRAPH";
OracleCommand cmd_row = new OracleCommand();
OracleDataReader dr1;
cmd_row.CommandText = "SELECT PHGR_ID FROM " +":tableconf";
cmd_row.Connection = conn;
cmd_row.Parameters.Add(new OracleParameter("tableconf", Tablei));
dr1 = cmd_row.ExecuteReader();

我得到了错误或00903无效的表名。

但是,当我像这样更改查询时(没有参数):

代码语言:javascript
复制
cmd_row.CommandText = "SELECT PHGR_ID FROM PHGR_PHYS_GRAPH";

很管用。谁能指出我的错误是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 07:42:13

您不能为此目的使用OracleParameter。您只可以将其用于参数值。例如:

代码语言:javascript
复制
OracleCommand cmd_row = new OracleCommand();
cmd_row.CommandText = "SELECT PHGR_ID FROM PHGR_PHYS_GRAPH WHERE phgr_id=:phgr_id";
cmd_row.Connection = conn;
cmd_row.Parameters.Add(new OracleParameter("phgr_id", "some_value"));

如果您想要有一个可变表名,您应该使用String.Format()或更简洁的$

代码语言:javascript
复制
String Tablei= "PHGR_PHYS_GRAPH";
OracleCommand cmd_row = new OracleCommand();
cmd_row.CommandText = $"SELECT PHGR_ID FROM {Tablei} WHERE phgr_id=:phgr_id";
cmd_row.Connection = conn;
cmd_row.Parameters.Add(new OracleParameter("phgr_id", "some_value"));

顺便说一句:我强烈建议用块来包装代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50830965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档