首页 新闻 会员 周边 捐助

使用OracleDataAdapter(SQLString, connection)时,sqlstring为 "call 存储过程" 时出错,请高手指点

0
[待解决问题]

一个存储过程为3个输入参数,1个输出游标

前台的程序为:

string sql = "{call PKG_DA0100C.P_REFER('" + Convert.ToString(txt_mat_no.Text) + "','" + Convert.ToString(txt_pysx.Text) + "','" + Convert.ToString(txt_specandtype.Text) + "')}";

DataSet ds1 =  DbHelperOra.Query(sql.Trim());

DbHelperOra.Query()函数:

1 public static DataSet Query(string SQLString)
2 {
3 using (OracleConnection connection = new OracleConnection(connectionString))
4 {
5 DataSet ds = new DataSet();
6 try
7 {
8 connection.Open();
9 OracleDataAdapter da = new OracleDataAdapter(SQLString, connection);
10 da.Fill(ds,"ds");
11 }
12 catch(System.Data.OracleClient.OracleException ex)
13 {
14 throw new Exception(ex.Message);
15 }
16 return ds;
17 }
18 }

 运行时SQLString为 {call PKG_DA0100C.P_REFER('','','')} 提示无效字符

如果SQLString赋值时去掉两边的大括号,则提示 输入参数或类型不正确。请高手解答!

紫菀花的主页 紫菀花 | 初学一级 | 园豆:154
提问于:2011-05-11 11:16
< >
分享
所有回答(1)
0

用OracleCommand+OracleParameter来做吧。

Launcher | 园豆:45050 (高人七级) | 2011-05-11 11:17
你说的这种是可以,但我是想知道这样的方法到底哪里出错了
支持(0) 反对(0) 紫菀花 | 园豆:154 (初学一级) | 2011-05-11 20:10
@紫菀花:你可以把你拼接的SQL语句放到查询分析器中去执行一下.call不能调用带参数的SP: call PKG_DA0100C.P_REFER()
支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2011-05-12 09:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册