ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

C#&Oracle winform向数据库中插入时间

2022-01-13 07:31:42  阅读:124  来源: 互联网

标签:insert C# into DTST2 values SQLString SQL Oracle winform


记得零散,凑合看吧先

目的是向数据库中保存当前系统时间。
经常遇到的报错是缺失逗号,最终排查发现问题出在SQL语句。

一开始表结构里字段的类型设为timestamp和date来着,但是考虑到C#中System.Datetime.Now的格式也许不一致而且我不熟悉应该怎么操作,于是干脆把字段类型设置为VARCHAR2(20),C#中也将时间转换为字符串进行保存了。
通过以下的各种尝试最终确定了是我没有写外层的单引号(SQL语句中字符串的单引号)导致的错误

插入时间时的几个试验和对应的报错信息
//SQLString = $"insert into A_DTST2 values({BeginTime},8,9)";//缺失逗号
                    //SQLString = "insert into A_DTST2 values(啥玩意,8,9)";//列在此处不允许
                    //SQLString = "insert into A_DTST2 values('啥玩意',8,9)";//System.InvalidOperationException:“集合已修改;可能无法执行枚举操作。”
                    //但能添加
                    //SQLString = "insert into A_DTST2 values('what',8,9)";//能添加
                    //String str = "哼";
                    //SQLString = $"insert into A_DTST2 values({str},8,9)";//列在此处不允许
                    //String str = "what";
                    //SQLString = $"insert into A_DTST2 values('{str}',8,9)";//列在此处不允许,也许是单引号双引号的问题。就是,外层+单引OK了
                    //DbHelperOra.ExecuteSql(SQLString);

小总结一下

  • 有关SQL语句数据库操作的调试,应当现在Oracle中,用SQL语句测试再去C#中调试,这样可以避免语句错误导致的功能无法实现
  • 功能实现最大,不用管啥类型,甚至可以先不管啥效率,先做出来再说!先做到再做好,什么时候在哪都适用

标签:insert,C#,into,DTST2,values,SQLString,SQL,Oracle,winform
来源: https://www.cnblogs.com/Jane-share/p/15796134.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有