C# + 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#中调试,这样可以避免语句错误导致的功能无法实现
- 功能实现最大,不用管啥类型,甚至可以先不管啥效率,先做出来再说!先做到再做好,什么时候在哪都适用
橘子Jane
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具