
在存储过程中插入数据肯定用到sql语句,写好insert语句就好了。
create or replace procedure p_insert_mt_jx(P_a1 in varchar2,P_a2 in varchar2,P_a3 in varchar2,P_a4 in varchar2)as
sql_str varchar2(100)
begin
sql_str:='insert into mt_jx (a1,a2,a3,a4) values ('||P_a1||','||P_a2||','||P_a3||','||P_a4||',)'
execute immediate sql_str
/*
或者你可以不用execute immediate,可以直接写下面的sql
insert into mt_jx (a1,a2,a3,a4) values (P_a1,P_a2,P_a3,P_a4)
*/
commit
end
new SqlParameter("CountryName",country.CountryName)似乎应该是
new SqlParameter("@CountryName",country.CountryName)
这样定义的parameter的变量名才和存储过程的参数名对应
另外返回-1 这个返回值是DBHelper.ExecuteCommand方法的返回值,为什么返回-1 应该看这个方法的定义,设置断点调试即可知道执行的细节
实现的方法和详细的 *** 作步骤如下:
1、第一步,创建一个存储过程,该代码如图所示。存储过程的主要目的是为表“JingYan”插入新数据,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,执行以下几行代码,并查看执行是否成功。现在,数据库中有一个存储过程源“sp_JY”,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,查看“JingYan”表中的当前数组,只有三行数据,如下图所示,然后进入下一步。
4、然后,完成上述步骤后,在mysql中,要调用存储过程,只需使用“call”关键字并输入存储过程的名称即可。当然,如果有参数,则需要带一个参数。代码见下图,然后进入下一步。
5、随后,完成上述步骤后,再次查看“JingYan”表中的数据,可以看到当前数据已经是四个,这表明对存储过程的调用已成功插入了新数据,如下图所示,然后进入下一步。
6、接着,完成上述步骤后,添加另一个存储过程,该存储过程使用select语句返回表数据,如下图所示,然后进入下一步。
7、最后,完成上述步骤后,调用新的存储过程,可以看到结果中已经返回了表数据,如下图所示。这样,问题就解决了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)