Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在sing Oracle命令C中执行多个insert into table命令#_C#_Oracle_Visual Studio_Oracle11g - Fatal编程技术网

C# 在sing Oracle命令C中执行多个insert into table命令#

C# 在sing Oracle命令C中执行多个insert into table命令#,c#,oracle,visual-studio,oracle11g,C#,Oracle,Visual Studio,Oracle11g,我想在单个Oracle命令中执行以下所有insert into table语句,这可能吗 OracleCommand cmd = new OracleCommand(); var parameter = cmd.Parameters; string insrtPInfo = "Insert into PersonalInfo(Name, ContactNum, EmailID, Address, Gender, DOB) VALUES(:pName, :contactNum, :emailId,

我想在单个Oracle命令中执行以下所有insert into table语句,这可能吗

OracleCommand cmd = new OracleCommand();
var parameter = cmd.Parameters;
string insrtPInfo = "Insert into PersonalInfo(Name, ContactNum, EmailID, Address, Gender, DOB) VALUES(:pName, :contactNum, :emailId, :address, :gender, :dob )";
string insrtEdu = "Insert into PersonalInfo(Degree, Institution, Year, CGPA_Marks) VALUES(:degree, :Instituition, :year, :marks)";
string insrtExprnce = "Insert into PersonalInfo(Organization, Organization, Desigination) VALUES(:organization, :duration, :desigination)";
string insrtSkils = "Insert into PersonalInfo(Programming_languages, Softwares, OS) VALUES(:progLang, :softwares, OS)";
string insrtProj = "Insert into PersonalInfo(FYP, Other_Projects) VALUES(:fyp, otherProj)";
// T1
parameter.Add("pName", pName);
parameter.Add("contactNum", contactNum);
parameter.Add("emailId", emailId);
parameter.Add("address", address);
parameter.Add("gender", gender);
parameter.Add("dob", dob);
// T2             
parameter.Add("degree", degree);
parameter.Add("Instituition", Instituition);
parameter.Add("year", year);
parameter.Add("marks", marks);
// T3                             
parameter.Add("organization", organization);
parameter.Add("duration", duration);
parameter.Add("desigination", desigination);
// T4           
parameter.Add("progLang", progLang);
parameter.Add("softwares", softwares);
parameter.Add("OS", OS);
// T5
parameter.Add("fyp", fyp);
parameter.Add("otherProj", otherProj);
cmd.CommandText = insrtPInfo;
cmd.ExecuteNonQuery();

如何在单个Oracle命令中执行所有这些语句。或者其他最好的方法。我正在使用Visual Studio 2013和Oracle 11g作为数据库。

一个选项是使用Oracle的
插入所有语法:

string sql = @"Insert all
                into PersonalInfo(Name, ContactNum, EmailID, Address, Gender, DOB) VALUES(:pName, :contactNum, :emailId, :address, :gender, :dob )
                into PersonalInfo(Degree, Institution, Year, CGPA_Marks) VALUES(:degree, :Instituition, :year, :marks)
                into PersonalInfo(Organization, Organization, Desigination) VALUES(:organization, :duration, :desigination)
                into PersonalInfo(Programming_languages, Softwares, OS) VALUES(:progLang, :softwares, :OS)
                into PersonalInfo(FYP, Other_Projects) VALUES(:fyp, :otherProj)
               select * from dual";
文件:

全部纳入条款

指定
ALL
后跟多个
insert\u-into\u子句
,以执行无条件多表插入。Oracle数据库对子查询返回的每一行执行一次insert_into_子句


另一个选项是将所有
INSERT
语句包装在匿名
PL/SQL
块中:

string sql = @"begin
                insert into PersonalInfo(Name, ContactNum, EmailID, Address, Gender, DOB) VALUES(:pName, :contactNum, :emailId, :address, :gender, :dob );
                insert into PersonalInfo(Degree, Institution, Year, CGPA_Marks) VALUES(:degree, :Instituition, :year, :marks);
                insert into PersonalInfo(Organization, Organization, Desigination) VALUES(:organization, :duration, :desigination);
                insert into PersonalInfo(Programming_languages, Softwares, OS) VALUES(:progLang, :softwares, :OS);
                insert into PersonalInfo(FYP, Other_Projects) VALUES(:fyp, :otherProj);
               end;";

cmd.executenonquery()处,可能重复I get错误“由于对象的当前状态,操作无效”@sstan此错误与语句本身无关。根据您发布的代码,您似乎忘记了在
OracleCommand
对象上设置连接。如果不是这样,考虑用完整的代码+完全错误和堆栈跟踪来编辑您的帖子。或者更好的是,考虑一个新的问题,因为这将不再与重写插入语句有关。