我的代码中出现此错误:在处理命令期间发生了一个或多个错误。 [英] i have this error in my code :One or more errors occurred during processing of command.
本文介绍了我的代码中出现此错误:在处理命令期间发生了一个或多个错误。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
leDbConnection con = new OleDbConnection();
DataTable dt = new DataTable();
con.ConnectionString = Provider = MSDAORA; Data Source = DATA; Password = ****** ****;用户ID = ********;
con.Open();
string sqlcommand = INSERT INTO GROUPS( GROUP_ID,GROUP_NAME,DEPT_ID) + VALUES(SEQ_MAX_GROUP_ID_NO.NEXTVAL,@ groupName,SELECT DEPT_ID FROM PERSONNEL_TEMP .DEPARTMENT WHERE DEPARTMENT_NAME = @ depName);
OleDbCommand command = new OleDbCommand(sqlcommand,con);
command.Parameters.AddWithValue( @ groupName,textBox1.Text);
command.Parameters.AddWithValue( @ depName,comboBox1.SelectedItem);
OleDbDataAdapter oda = new OleDbDataAdapter(command);
oda.Fill(dt);
dataGridView2.DataSource = dt;
con.Close();
解决方案
问题在于子查询在insert语句中插入DEPT_ID 。你的子查询实际上返回一个无效的表。
从DEPERSONMENT_NAME = @ depName中的PERSONNEL_TEMP.DEPARTMENT选择DEPT_ID
你实际上需要使用top 1.查询应该是这样的:
SELECT top 1 DEPT_ID FROM PERSONNEL_TEMP.DEPARTMENT DEPARTMENT_NAME = @ depName
leDbConnection con = new OleDbConnection();
DataTable dt = new DataTable();
con.ConnectionString = "Provider=MSDAORA;Data Source=DATA;Password=**********;User ID=********";
con.Open();
string sqlcommand = "INSERT INTO GROUPS(GROUP_ID, GROUP_NAME,DEPT_ID) " + "VALUES(SEQ_MAX_GROUP_ID_NO.NEXTVAL,@groupName, SELECT DEPT_ID FROM PERSONNEL_TEMP.DEPARTMENT WHERE DEPARTMENT_NAME=@depName)";
OleDbCommand command = new OleDbCommand(sqlcommand, con);
command.Parameters.AddWithValue("@groupName", textBox1.Text);
command.Parameters.AddWithValue("@depName", comboBox1.SelectedItem);
OleDbDataAdapter oda = new OleDbDataAdapter(command);
oda.Fill(dt);
dataGridView2.DataSource = dt;
con.Close();
解决方案
The problem is with the sub query to insert "DEPT_ID" within the insert statement. Your sub query actually returns a table which is not valid.
SELECT DEPT_ID FROM PERSONNEL_TEMP.DEPARTMENT WHERE DEPARTMENT_NAME=@depName
You actually need to use top 1. The query should be like this:
SELECT top 1 DEPT_ID FROM PERSONNEL_TEMP.DEPARTMENT WHERE DEPARTMENT_NAME=@depName
这篇关于我的代码中出现此错误:在处理命令期间发生了一个或多个错误。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文