在项目开发过程中,碰见一个这样的问题:
用FreeTextBox控件输入带格式的内容,保存至数据库,但插入时发现总是报错:字符串过长
到网上搜了下,大概有几种方法,太复杂
后来这样的问题大概是由于Oracle,拼接sql语句不支持超过4000字符,中文不能超过2000,现在我参照网上有些兄弟的提示,用参数进行操作,实现如下:希望能给像我一样迷惑的兄弟一种解决方法
//
利用传参数
OracleConnection Con = new System.Data.OracleClient.OracleConnection(strCon);
Con.Open();
// 自己用时,替换自己的sql语句
string cmdText = " insert into xmgl_wd(pk_wdbh,wdmc,lbbh,wdnr,wdfjdz,wdsj,istj) values (XMGL_WD_SEQ.Nextval,' " + wdmc + " ',' " + lbbh + " ',:pb,' " + wdfjdz + " ', " + str_add_wdsj + " ,' " + istj + " ') " ;
OracleCommand cmd = new OracleCommand(cmdText,Con);
OracleParameter op = new OracleParameter( " pb " ,OracleType.Clob);
op.Value = wdnr;
cmd.Parameters.Add(op);
cmd.ExecuteNonQuery();
Con.Close();
OracleConnection Con = new System.Data.OracleClient.OracleConnection(strCon);
Con.Open();
// 自己用时,替换自己的sql语句
string cmdText = " insert into xmgl_wd(pk_wdbh,wdmc,lbbh,wdnr,wdfjdz,wdsj,istj) values (XMGL_WD_SEQ.Nextval,' " + wdmc + " ',' " + lbbh + " ',:pb,' " + wdfjdz + " ', " + str_add_wdsj + " ,' " + istj + " ') " ;
OracleCommand cmd = new OracleCommand(cmdText,Con);
OracleParameter op = new OracleParameter( " pb " ,OracleType.Clob);
op.Value = wdnr;
cmd.Parameters.Add(op);
cmd.ExecuteNonQuery();
Con.Close();