string sql = " insert into TB_PROCURECATALOG(PROCURECATALOGID,PRODUCTID,PRODUCTNAME,MEDICINEMODELNAME,OUTLOOKC,FACTOR,UNIT,MATERIAL,COMPANYNAME_SC,ISYBDRUG,ISNHDRUG,ISDJDRUG,HOSPITALNUMBER,ISSUBJOIN,GOODSSORT,MEMO) values(@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12.@13,@14,@15) ";
int c = item.db.ExecuteNonQuery(sql, new object[] {
str[0].ToString(), str[1].ToString(),
str[2].ToString(), str[3].ToString(),
str[4].ToString(), str[5].ToString(),
str[6].ToString(), str[7].ToString(),
str[8].ToString(), str[9].ToString(),
str[10].ToString(), str[11].ToString(),
str[12].ToString(), str[13].ToString(),
str[14].ToString(), str[15].ToString(),
});
数据库里试都能成功
不是这样做的,你需要使用sql parameter 类绑定参数
SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@name","Pudding"),new SqlParameter("@ID","1") }; cmd.Parameters.AddRange(paras);
他那是Oracle吧?
ora,是Oracle?Oracle的变量定义我记得不是?么还是:么?怎么成@了?
看清楚@12.@13中间应该是,
@顾晓北: Oracle 我一般都简写为Ora
SQL里 ,一个@标示临时变量 @@标示全局变量
-------------
sqlplus里
ORACLE还提供了自己定义变量 包括define 变量和绑定变量
sql > define x
SQL> define x='abc'
要引用这个变量,需要使用and符号,假如是字符串,需要加上单引号。
SQL> select '&x' from dual;
原值 1: select '&x' from dual
新值 1: select 'abc' from dual
绑定变量
要想使用绑定变量,需要先定义它
variable x varchar2(10)
begin
:x := 'hello';
end;
/
print :x
define 变量总是被sqlplus 扩展的字符串,而declared变量可以被SQL和PLSQL作为真正的绑定变量使用
ToString()都当成字符串了,数据类型不对,绑定出错了吧