首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当尝试将日期从C#代码更新到oracle数据库应用程序时,会卡住

当尝试将日期从C#代码更新到oracle数据库应用程序时,会卡住
EN

Stack Overflow用户
提问于 2015-04-15 08:32:52
回答 2查看 1.5K关注 0票数 1

因此,我希望从应用程序中更新oracle数据库中的日期字段,因此我使用以下查询和代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string insertqeuryrepair = "UPDATE REPARATIE SET PROBLEEM ='" + problem + "',DATUM = '11-12-2015' WHERE ONDERHOUDID=" + maintenanceID.ToString();
OracleSQL.modifyQuery(insertqeuryrepair);

我的modifyQeury函数如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public static Boolean modifyQuery(String query)
    {
        bool succes = false;
        OracleCommand cmd = new OracleCommand(query, connection);
        try
        {
            if (connection.State == ConnectionState.Closed)
                connection.Open();
            cmd.ExecuteNonQuery();
            succes = true;
        }
        catch (Exception e)
        {
            Debug.WriteLine("[OracleSQL]Error, message: " + e.Message);
        }
        finally
        {
            connection.Close();
        }
        return succes;
    }

现在,当我运行这段代码时,应用程序被卡住了,然而,当我删除DATE = '11-12-2015‘时,它工作得很好。‘如果应用程序不能正常运行,我该如何更新日期?

EN

回答 2

Stack Overflow用户

发布于 2015-04-15 08:40:53

如果您使用TO_DATE()显式设置DATUM的格式,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string insertqeuryrepair = "UPDATE REPARATIE SET PROBLEEM ='" + problem + "',DATUM = TO_DATE('11-12-2015', 'dd-mm-yyyy') WHERE ONDERHOUDID=" + maintenanceID.ToString();
票数 0
EN

Stack Overflow用户

发布于 2016-10-05 17:00:55

首先,使用冒号表示OracleParameter ParameterName值来参数化更新查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string insertqueryrepair = "UPDATE REPARATIE SET PROBLEEM = :problem, DATUM = :myDate WHERE ONDERHOUDID= :maintenanceID";

接下来,将日期解析为DateTime变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DateTime myDate = DateTime.Parse("11/12/2015");

第三,设置一个返回布尔变量并调用您的函数,但将其重命名为doQuery,而不是modifyQuery,因为您不应该修改其中的任何内容-只需设置参数并执行它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool succes = OracleSQL.doQuery(insertqueryrepair, myDate, problem, maintenanceID.ToString());

现在,我们将您的值传递给函数并对其进行参数化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static Boolean doQuery(string query, string problem, string maintenanceID, DateTime myDate)
{
    bool succes = false;
    OracleCommand cmd = new OracleCommand(query, connection);
    try
    {
        if (connection.State == ConnectionState.Closed)
            connection.Open();

        OracleParameter param1 = new OracleParameter();
        param1.OracleDbType = OracleDbType.Nvarchar2;
        param1.ParameterName = "problem";
        param1.Value = problem;

        OracleParameter param2 = new OracleParameter();
        param2.OracleDbType = OracleDbType.Nvarchar2;
        param2.ParameterName = "maintenanceID";
        param2.Value = maintenanceID;

        OracleParameter param3 = new OracleParameter();
        param3.OracleDbType = OracleDbType.Date;
        param3.ParameterName = "myDate";
        param3.Value = myDate;

        cmd.Parameters.Add(param1);
        cmd.Parameters.Add(param2);
        cmd.Parameters.Add(param3);

        cmd.ExecuteNonQuery();
        succes = true;
    }
    catch (Exception e)
    {
        Debug.WriteLine("[OracleSQL]Error, message: " + e.Message);
    }
    finally
    {
        connection.Close();
        cmd.Dispose();
    }
    return succes;
}

您甚至可以执行额外的步骤,使传入的变量成为泛型(param1、param2等),并检查它们是否为null,这样,如果您向此函数传递了一个不同的查询,可能只有1个值(其余的值可以设置为null),它就不必一直对3个变量进行操作。如果设置正确,此函数可以为您的任何查询执行所有工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29645360

复制
相关文章
oracle创建数据库文件时出错_oracle错误代码大全
3、用net configuration assistant 添加监听程序;
全栈程序员站长
2022/09/29
1.6K0
oracle创建数据库文件时出错_oracle错误代码大全
win7更新到35%卡住不动了怎么办
使用win7操作系统的时候,有些更新系统的情况下可能会出现系统卡死卡住的情况,这种情况也不能强制关机。那么win7更新到35%卡住不动了怎么办呢?小编觉得有可能是因为我们电脑后台网络的问题,或者就是系
牛肉面
2021/04/08
4.1K0
Emacs 保存 gpg 文件时卡住
在最近的 gnupg 版本中,出现了 breaking changes 导致 Emacs 保存文件时会卡住,涉及的版本有:
飞驰的西瓜
2023/09/06
2090
Emacs 保存 gpg 文件时卡住
解决jenkins打包时不能及时更新到最新代码的问题
Jenkins服务器时间与SVN服务器时间不一致,Jenkins的SVN插件是使用时间标签下载,而不是取HEAD,
felixxue
2022/12/30
1.7K0
解决jenkins打包时不能及时更新到最新代码的问题
linux 日期转换时间戳_oracle日期转13位时间戳
4. 指定日期格式转换:date -d @1614592163 +”%Y-%m-%d %H:%M:%S”
全栈程序员站长
2022/11/11
6.3K0
C#将日期格式化为指定格式
明志德道
2023/10/21
2350
C#将日期格式化为指定格式
oracle 转number日期,oracle number型日期转date型日期
在搞数据库时,发现有这样的一个字段,类型是NUMBER(38),查看了一下里面的数据,都是这样的,
全栈程序员站长
2022/09/15
8K0
Oracle日期处理
TRUNC(date)函数返回date当天的时间部分被格式模型fmt截断到指定的单位
WindCoder
2020/02/10
1.2K0
Confluence 6 尝试从 XML 备份中恢复时解决错误
错误可能是因为数据库突然不可访问而产生。也有可能是你备份文件有问题,你需要找到你 XML 备份文件中违反数据库规定的记录修改这个记录后再创建一个新的 XML 备份:
HoneyMoose
2019/01/31
9370
使用C#开发数据库应用程序
第一章 用Hello ACCP.NET快速热身(一) 1-1.进入C#世界 a.第一个C#程序 (1)新建项目【项目:project】 (2)生成解决方案【生成:build,解决方案:solution】 (3)调试【调试:debug】 b.认识控制台应用程序文件夹结构 Program.cs .cs作为扩展名 HelloACCP.exe 是编译后生成的文件,可以直接执行 经验:视图-解决方案资源管理器 也可以使用快捷键Ctrl+Alt+L 工具-选项-项目
用户1112962
2018/07/04
6K0
数据库中日期的插入(Oracle和Mysql)
Oracle数据库 插入系统日期 insert into emp(empno,eanme,hiredate) values(1112,'chy',sysdate); 插入Oracle数据库指定格式的日期 insert into emp(empno,ename,hiredate) values(1113,'chy2','29/6月/2019'); 使用to_date()插入其他格式的日期(最常用) insert into emp(empno,ename,hiredate) values(1114,'chy3'
时间静止不是简史
2020/07/24
5.1K0
当JSONObject中的value=null时,key竟然会消失?
value为Date类型时,JSON.toJSONString打印出来的是时间戳,取出来的却是Date?等。
陈哈哈
2020/07/03
2.9K0
怎样将数据从Oracle迁移到TiDB
Best Practice for Data migration from Oracleto Tidb
杨漆
2021/02/19
1.9K0
怎样将数据从Oracle迁移到TiDB
从 WebAPI Beta 更新到WebAPI RC
The official word on changes from Beta to RC for Web API-related topics (filtered from the original page). ASP.NET Web API now uses Json.NET for JSON formatting: The default JSON formatter in ASP.NET Web API now uses Json.NET for JSON serialization. Json.N
张善友
2018/01/29
1.2K0
从 WebAPI Beta 更新到WebAPI RC
mysql插入日期 vs oracle插入日期
今天做oracle日期插入的时候突然开始疑惑日期是如何插入的。 用框架久了,反而不自己做简单的工作了。比如插入。 通常,新建一个表对象,然后绑定数据,前端form提交,后端getModel后直接model.save()就完事了。 像insert这样的语句很少写了,除了备份sql的时候。 言归正传, mysql插入日期不限制分隔符,不必明确格式, 至少测试了n次都成功了。 1 INSERT INTO person(name,birth) values('dd','2015-02-02'); 2 INSERT
Ryan-Miao
2018/03/13
7.5K0
并发系列:从原子更新到CPU锁
原子操作在并发编程中是很重要的概念之一,java中的并发的原子操作和各种锁的实现都少不了CAS的影子,本文从AtomicReferenceFieldUpdater类的使用开始说起,由浅入深,层层深挖,最终挖到硬件来描述并发领域中的最重要的概念:原子操作。 目录: 1、AtomicReferenceFieldUpdater的使用。 2、AtomicReferenceFieldUpdater源码分析。 3、CAS基本介绍。 4、CAS 底层原理。 5、CPU锁的种类。 5、CAS的缺点 使用 AtomicR
ImportSource
2018/04/03
2.1K1
并发系列:从原子更新到CPU锁
将我的 Windows Phone 应用程序更新到 Windows Phone 8
[原文发表地址]  Updating my Windows Phone App to Windows Phone 8 [中文原文地址] 将我的 Windows Phone 应用程序更新到 Windows Phone 8 [原文发表时间]   2012-12-8 12:53 今年早些时候,我花了一天编写了一个小的 Windows Phone 7 应用程序,我将它称之为Lost Phone Screen。它能为你创建锁屏,并在上面显示你的姓名和联系号码,以便当你丢失它时,用老办法帮助找到你的手机。无需 GPS,
张善友
2018/01/29
1.6K0
将我的 Windows Phone 应用程序更新到 Windows Phone 8
编写 if 时不带 else,你的代码会更好!
来源:翻译自:Nicklas Millard的文章《Better Software Without If-Else》
肉眼品世界
2020/11/19
6820
编写 if 时不带 else,你的代码会更好!
编写 if 时不带 else,你的代码会更好!
注:本文并不肯定或者否定哪一种写法,仅仅为大家提供一些其他的编码思路或者一些值得借鉴的点子,希望大家能在公众号的每一篇文章中都能有所收获,同时欢迎探讨!
Java旅途
2021/11/10
6060
编写 if 时不带 else,你的代码会更好!
当else多了之后,看起来代码就开始复杂了,那么如何来完成同样的逻辑呢?看看这篇文章,也许你就会有所领悟!
java进阶架构师
2021/04/21
9470

相似问题

当尝试动态更改标签文本时,应用程序会被卡住。

10

将当前日期从c#传递到oracle数据库时出错

10

当尝试选择最大日期时,DatePicker会利用

32

尝试使用c#设置日期时出现oracle错误

12

将日期从表单更新到数据库时出现问题

323
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文