String SQLStatement= "if exists(select lc_sn from LC_patient where lc_sn='"+@lc_sn+"')"
+"update LC_patient set visit_no='"+@visit+"',cname='"+@cname+"',home_tel='"+@tel+"',corp_name='"+@corp+"',home_address='"+@address+"' where lc_sn='"+@lc_sn+"'"
+"else insert into LC_patient(lc_sn,entry_no,visit_no,patient_sn,cname,birth_date,home_tel,gender,corp_name,home_address) values("+@lc_sn+",'0','"+@visit+"','"+@patient+"','"+@cname+"','"+@birth+"','"+@tel+"','"+@gender+"','"+@corp+"','"+@address+"')";
+"update LC_patient set visit_no='"+@visit+"',cname='"+@cname+"',home_tel='"+@tel+"',corp_name='"+@corp+"',home_address='"+@address+"' where lc_sn='"+@lc_sn+"'"
+"else insert into LC_patient(lc_sn,entry_no,visit_no,patient_sn,cname,birth_date,home_tel,gender,corp_name,home_address) values("+@lc_sn+",'0','"+@visit+"','"+@patient+"','"+@cname+"','"+@birth+"','"+@tel+"','"+@gender+"','"+@corp+"','"+@address+"')";
SQLStatement += "update LC_patient set visit_no='" + @visit + "',cname='" + @cname + "',home_tel='" + @tel + "',corp_name='" + @corp + "',home_address='" + @address + "' where lc_sn='" + @lc_sn + "'";
SQLStatement += "else insert into LC_patient(lc_sn,entry_no,visit_no,patient_sn,cname,birth_date,home_tel,gender,corp_name,home_address) values(" + @lc_sn + ",'0','" + @visit + "','" + @patient + "','" + @cname + "','" + @birth + "','" + @tel + "','" + @gender + "','" + @corp + "','" + @address + "')";
SQLStatement += "update LC_patient set visit_no='" + @visit + "',cname='" + @cname + "',home_tel='" + @tel + "',corp_name='" + @corp + "',home_address='" + @address + "' where lc_sn='" + @lc_sn + "'";
SQLStatement += "else insert into LC_patient(lc_sn,entry_no,visit_no,patient_sn,cname,birth_date,home_tel,gender,corp_name,home_address) values(" + @lc_sn + ",'0','" + @visit + "','" + @patient + "','" + @cname + "','" + @birth + "','" + @tel + "','" + @gender + "','" + @corp + "','" + @address + "')";
运行的时候还是提示SQL语句错误。
我想实现的功能是:点提交时,如果数据库中存在一条lc_sn对应的数据,就执行更新,否则执行插入。
{//提交患者信息
string SQLStatement= "if exists(select lc_sn from LC_patient where lc_sn='"+@lc_sn+"')"
+"update LC_patient set visit_no='"+@visit+"',cname='"+@cname+"',home_tel='"+@tel+"',corp_name='"+@corp+"',home_address='"+@address+"' where lc_sn='"+@lc_sn+"'"
+"else insert into LC_patient(lc_sn,entry_no,visit_no,patient_sn,cname,birth_date,home_tel,gender,corp_name,home_address) values("+@lc_sn+",'0','"+@visit+
"','"+@patient+"','"+@cname+"','"+@birth+"','"+@tel+"','"+@gender+"','"+@corp+"','"+@address+"')";
OracleDataAdapter oda = new OracleDataAdapter(SQLStatement,oracleconn);
DataSet dstPatient= new DataSet();
oda.Fill(dstPatient);
return dstPatient;
}
以前我遇到很多用+号写sql语句,一旦sql很长总是报错,后来使用string.format(问题解决了
这个具体怎么写?我用的是oracle数据库,我那样写可以么?是不是要重新定义参数什么的?