c#插入ORACLE数据库问题

问题描述

[color=#FF9900]stringconstring="datasource=orcl;userid=scott;password=oracle";OracleConnectionconn=newOracleConnection(constring);Int32s1=int.Parse(this.textBox1.Text);strings2=this.textBox2.Text;Int32s3=int.Parse(this.textBox3.Text);strings4=this.comboBox1.Text;stringinsertstring="insertintoSTUDENTvalues('s1','s2','s4','s3')";执行插入的时候报错,ORA-01722无效字符,如果注释掉S1,S3直接执行stringinsertstring="insertintoSTUDENTvalues('01','s2','s4','23')"则插入成功。S1S3是number类型的。试过其他类型都不行,请帮忙看看。

解决方案

解决方案二:
晕死,s1,s2,这是变量啊你怎么当字符串插入数据库了学习一下字符串拼接的知识stringinsertstring=String.Format("insertintoSTUDENTvalues({0},'{1}','{2}',{3})",s1,s2,s4,s3);
解决方案三:
你想把s1这个变量的值插入数据库,而不是"s1"这个字符串,这个你先弄明白
解决方案四:
谢谢,我才接触oracle几天,很多东西根本不懂,谢谢指教。
解决方案五:
引用3楼u010133695的回复:

谢谢,我才接触oracle几天,很多东西根本不懂,谢谢指教。

这个不是oracle的问题,是你对C#语法的了解。不要使用字符串拼接,一方面容易出错,不好维护,另一方面一会带来安全问题。学者使用sqlparameterhttps://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlparameter%28v=vs.110%29.aspx
解决方案六:
按照一般规律,表的第一个字段是number类型主键,你那个insert没有写插入对应的列,所以会依次插入对应的列,而"s1"在oracle是不能转化成数字的,“01”是可以转化成数字的..所以一个报错,而令一个没报错..
解决方案七:
引用4楼SPFarm的回复:

Quote: 引用3楼u010133695的回复:
谢谢,我才接触oracle几天,很多东西根本不懂,谢谢指教。

这个不是oracle的问题,是你对C#语法的了解。不要使用字符串拼接,一方面容易出错,不好维护,另一方面一会带来安全问题。学者使用sqlparameterhttps://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlparameter%28v=vs.110%29.aspx

对于新手来说,先把SQL语句和字符串拼接玩明白了再说吧,什么SQL注入的问题,现阶段可以不要考虑那么多
解决方案八:
引用6楼Z65443344的回复:

Quote: 引用4楼SPFarm的回复:
Quote: 引用3楼u010133695的回复:
谢谢,我才接触oracle几天,很多东西根本不懂,谢谢指教。

这个不是oracle的问题,是你对C#语法的了解。不要使用字符串拼接,一方面容易出错,不好维护,另一方面一会带来安全问题。学者使用sqlparameterhttps://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlparameter%28v=vs.110%29.aspx

对于新手来说,先把SQL语句和字符串拼接玩明白了再说吧,什么SQL注入的问题,现阶段可以不要考虑那么多

请问,有什么资料可以学习的么?

时间: 2024-11-15 23:47:36

c#插入ORACLE数据库问题的相关文章

C#插入Oracle数据库中文乱码的解决方法

主要问题是:oracle客户端软件的字符编码与服务器端的字符编码不一致造成的. oracle服务端字符编码为: ZHS16GBK oracle客户端字符编码为:WE8ISO8859P1 解决办法有三种: (1)修改客户端注册表: 找到Oracle安装注册项下的NLS_LANG,将其值改为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK (2)通过调用_putenv函数,在程序中用代码设置: using System.Runtime.InteropServices; ... [

md5加密完怎么插入oracle数据库?

问题描述 insert into GTNEWS.SYS_USERS (id,usersign,username_o,username_r,sex,isdelete,pwd,deptid)values(1,'sysadmin','超级管理员','超级管理员',3,1,'oy&%py&%I50%G400gw&0mx&0A300Yu&05100qy&%M60%ev&0T70%V80%Zu&0ev&0',1); 问题补充:hudingchen

Oracle数据库日期型的插入(在PLSQL Developer上测试)

oracle|插入|数据|数据库 system/admin:数据库表scott方案下的empselect * from scott.emp  ORDER BY EMPNOINSERT INTO SCOTT.EMP (empno,HIREDATE) values(3,to_date('04-2月-2007','dd-Mon-yyyy'))INSERT INTO SCOTT.EMP (empno,HIREDATE) values(4,to_date('2007-1月-1','yyyy-Mon-dd'

oracle 数据库...-oracle 数据库插入一条数据,某字段如何自动递增1

问题描述 oracle 数据库插入一条数据,某字段如何自动递增1 oracle 数据库插入一条数据,某字段如何自动递增1,oracle 数据库插入一条数据,某字段如何自动递增1,在线等.急急急.求大指点 解决方案 1,使用序列 2,手动使用变量++然后执行插入数据库记录 解决方案二: oracle 字段递增 表插入数据,id自动增1 解决方案三: Oracle里有序列,使用序列来实现 解决方案四: 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l 自动提供唯一的数值 l 共享对

pl sql-急求oracle数据库插入新数据如何实时反馈给邮箱?急!急!急!

问题描述 急求oracle数据库插入新数据如何实时反馈给邮箱?急!急!急! 服务器上oracle数据库已经部署, 当oracle数据库中有新数据插入时,能够以邮件的形式反馈给某指定邮箱, 邮件内容要显示插入的数据内容(包括文件和新增的数据项)和插入时间. 注:此操作不用其他语言编写,直接用oracle PL/SQL编写此操作代码,需要此操作完整代码. 比较急,望大家能集思广益,给小弟提出宝贵意见,谢谢~~~ 解决方案 http://www.educity.cn/wenda/414505.html

oracle数据库中怎么一次性插入10万条数据

问题描述 oracle数据库中怎么一次性插入10万条数据 oracle数据库中怎么一次性插入10万条数据?急用!!!1 解决方案 最快的方法是用imp进行导入 或者用sql执行也可以(insert into )

使用ejb往oracle数据库中插入Date型数据,数据库中记录始终是yyyy-mm-dd

问题描述 使用ejb往oracle数据库中插入Date型数据,数据库中记录始终是yyyy-mm-dd 使用ejb往oracle数据库中插入Date型数据,数据库中记录始终是yyyy-mm-dd,但是在插入前我已经转成了yyyy-mm-dd HH:mm:ss格式,插入到数据库中时分秒就掉了,怎么回事 解决方案 应该用timestamp类型吧 解决方案二: http://blog.sina.com.cn/s/blog_af4f958e01015fmx.html 解决方案三: 也许是你使用的界面工具的

JdbcTemplate插入一条数据到Oracle数据库并返回自增长ID

问题描述 我的需求就是需要循环插入一组数据,因为数据库是按照自增长ID关联的,所以每插入一条数据,都要返回自增长的ID,用来设置关联关系,我用JdbcTemplate可以实现一组数据的插入并返回ID,但是循环两次以上就出错了:org.springframework.jdbc.UncategorizedSQLException:PreparedStatementCallback;uncategorizedSQLExceptionforSQL[insertintoT_METADATA_ABSTRAC

vs2010点击按钮时可以浏览项目里的图片并且插入到oracle数据库中

问题描述 vs2010点击按钮时可以浏览项目里的图片并且插入到oracle数据库中 vs2010点击按钮时可以浏览项目里的图片并且插入到oracle数据库中 解决方案 不建议直接将图片或文件保存到数据库中. 一般是保存文件路径,(注意分布式发布系统时要指定文件服务器) 删除时根据文件路径去删除对应文件.