我似乎无法弄清楚为什么以下语句没有执行。 oracle语句在sql developer中完美运行。 我正在使用此按钮将“neft_temp”中的新数据插入“bbbt”
private void button3_Click(object sender, EventArgs e)
{
OracleConnection con = new OracleConnection("Data Source=KBETEST; Persist Security Info=TRUE; User ID=dbo; Password=dbo123; Unicode=True");
OracleDataAdapter da = new OracleDataAdapter();
string str = "insert into bbbt(bankid,benbrn_code,brn_name,brn_addr,brn_loc,brn_stat,brn_city,coun_code,remarks,ifsc_code,rtgs_stat) select substr(ifsc_code,1,4), substr(ifsc_code,5), n.branch_name, n.address1, n.district, n.state, n.city, 'IN', n.bank_name, n.ifsc_code,n.status from neft_temp n where ifsc_code in (SELECT ifsc_code FROM neft_temp MINUS SELECT ifsc_code FROM bbbt)";
con.Open();
da.InsertCommand = new OracleCommand(str, con);
da.InsertCommand.ExecuteNonQuery();
con.Dispose();
button4.PerformClick();
}
答案 0 :(得分:0)
这是不问题的答案(因此社区维基) - 我还在等待更多的背景(重新“不执行”) - 但这仅仅是一个咨询方面的术语减少运动部件,避免副作用(例如,如果抛出异常,当前代码不会关闭连接):
private void button3_Click(object sender, EventArgs e)
{
using(var con = new OracleConnection("Data Source=KBETEST; Persist Security Info=TRUE; User ID=dbo; Password=dbo123; Unicode=True"))
using(var cmd = new OracleCommand(@"
insert into bbbt(bankid,benbrn_code,brn_name,brn_addr,brn_loc,brn_stat,brn_city,coun_code,remarks,ifsc_code,rtgs_stat)
select substr(ifsc_code,1,4), substr(ifsc_code,5), n.branch_name, n.address1, n.district, n.state, n.city, 'IN', n.bank_name, n.ifsc_code,n.status from neft_temp n where ifsc_code in (SELECT ifsc_code FROM neft_temp MINUS SELECT ifsc_code FROM bbbt)", con))
{
con.Open();
cmd.ExecuteNonQuery();
}
button4.PerformClick();
}
请注意,数据适配器在此处未添加任何内容,并且有多个IDisposable
类型未使用using
。
答案 1 :(得分:0)