问题列表 - 第13026页

SQL Server和.NET:在代码中插入失败(静默!),但在手动运行时则失败

我的插入存储过程:

ALTER procedure proj_ins_all 
(
@proj_number INT, 
@usr_id INT, 
@download DATETIME, 
@status INT 
)
as
INSERT INTO project
(proj_number, usr_id, date_download, status_id)
VALUES
(@proj_number, @usr_id, @download, @status)
select SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

...手动调用时运行正常,如下所示:

exec proj_ins_all 9001210, 2, '2009-09-03', 2 
Run Code Online (Sandbox Code Playgroud)

...但是从代码调用时:

_id = data.ExecuteIntScalar("proj_ins_all", arrParams);
Run Code Online (Sandbox Code Playgroud)

......插入不会发生.现在,标识列确实增加了,并且_id 确实设置为它的值.但该行本身从未出现在表格中.

我能想到的最好的猜测是一个插入触发器,它删除了新插入的行,但是表上没有触发器(为什么它会在手动完成时工作呢?).我的其他尝试是围绕猜测存储过程以某种方式回滚插入,因此将开始结束并且分号和分号放入存储过程以正确分离"插入"和"身份选择"位.没有修复.

有任何想法吗?

更新:

谢谢所有迄今为止帮助过的人.关于Preet的建议(第一个答案)我学会了如何使用SQL Server Profiler(我简直不敢相信我之前从未了解过它 - 我认为它只对性能调优有用,没有意识到我可以确切地看到查询的内容带它的DB).

它揭示了SqlCommand.ExecuteScalar()方法发送的SQL与我手动运行的SQL略有不同.它发送:

exec proj_ins_all @proj_number=9001810,@usr_id=2,@download='2009-09-03 16:20:11.7130000',@status=2
Run Code Online (Sandbox Code Playgroud)

我手动跑了,瞧!实际的SQL服务器错误(!):

将数据类型varchar转换为datetime时出错.

由于我是手动测试的,我只是将日期时间从'2009-09-03 16:20:11.7130000'缩短为'2009-09-03 16:20:11',这就解决了错误; 现在插入的行很好.

但这引出了一个问题:为什么Microsoft的SQL Server在该datetime参数中不能处理超过23个字符?这是Microsoft的SqlCommand.ExecuteScalar()方法,它构建了这样的查询,而不是我.这是一个问题,因为我的代码仍然不起作用.

一旦我手动工作,我就会看到如何在代码中为日期设置SqlParameter,这样它就会发送一个有效的值.我尝试将数据类型从SqlDbType.DateTime …

.net sql sql-server ado.net

8
推荐指数
2
解决办法
9702
查看次数

C++指向类的指针

谁能告诉我两者之间的区别是什么:

Display *disp = new Display();
Run Code Online (Sandbox Code Playgroud)

Display *disp;
disp = new Display();
Run Code Online (Sandbox Code Playgroud)

Display* disp = new Display();
Run Code Online (Sandbox Code Playgroud)

Display* disp(new Display());
Run Code Online (Sandbox Code Playgroud)

c++ initialization

19
推荐指数
2
解决办法
4万
查看次数

Java/C#与金融行业的C++相比有多大优势?

我想知道Java/C#与C++相比如何参考金融行业项目进行扩展?

谢谢.

finance

4
推荐指数
1
解决办法
8418
查看次数

emacs/elisp中的bignum

emacs是否支持不适合整数的大数字?如果是,我该如何使用它们?

elisp biginteger bignum

11
推荐指数
1
解决办法
1279
查看次数

我们是否需要在命名约定方面区分Interface类和抽象类?

区分Abstract类和接口类是否重要?

抽象类只是一个接口类,有一些具体的方法.

如果抽象类与Interface类共享相同的前缀"I",我们可以通过引入新的逻辑等轻松地将我们的接口类升级为抽象类.

UPDATE

我问这个的原因是,当项目增长时,界面会产生一些限制.例如,

如果一个接口已经由千个类"实现",并且在某些时候我们需要在基类中引入一些新方法,我们将必须修复所有子类.

抽象类在功能扩展方面提供了灵活性,因为它可以提供默认实现而不会影响子类.

这就是为什么我能够交换使用接口和抽象类的想法.

ICar car = new Merz(); // ICar can be interface or abstract class
Run Code Online (Sandbox Code Playgroud)

但是,当我再次考虑它时,我们仍然需要更改所有子类,因为类声明迫使我们在一开始就使用"扩展"或"实现".

所以我认为没有选择在abstract/interface类上进行多态.

java polymorphism abstract-class

2
推荐指数
2
解决办法
833
查看次数

使用JQuery计算<p>中的输入

我有一个

      <p style="display: block;" class="title fieldChoices">Choices:
          <input value="option1" maxlength="150" id="Choice1"/>
          <input value="option2" maxlength="150" id="Choice2"/>
      </p>
Run Code Online (Sandbox Code Playgroud)

我正在尝试fieldChoices使用JQUery 计算其中有多少输入框.请建议一种方法如何做到这一点.

jquery

0
推荐指数
1
解决办法
99
查看次数

Date.TryParseExact - 用于提供者参数的是什么?

Date.TryParse的方法签名是:

Public Shared Function TryParseExact ( _
    s As String, _
    format As String, _
    provider As IFormatProvider, _
    style As DateTimeStyles, _
    <OutAttribute> ByRef result As DateTime _
) As Boolean
Run Code Online (Sandbox Code Playgroud)

我理解什么格式,但是什么是提供者参数?我知道您传入了CultureInfo实例,但我不确定它的用途是什么.

有谁能请赐教?

.net asp.net parsing

1
推荐指数
1
解决办法
3755
查看次数

我在哪里将XSL函数放在XSL文档中?

我有一个XSL样式表,我需要使用xsl:function添加一些自定义字符串操作.但是我在尝试找出将函数放在文档中的位置时遇到了麻烦.

我的XSL简化看起来像这样,

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:my="myFunctions" xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="Master.xslt"/>
  <xsl:template match="/">
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <!-- starts actual layout -->
      <fo:page-sequence master-reference="first">
        <fo:flow flow-name="xsl-region-body">
          <!-- this defines a title level 1-->
          <fo:block xsl:use-attribute-sets="heading">
            HelloWorld
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

我想提出一个简单的功能,比方说,

  <xsl:function name="my:helloWorld">
    <xsl:text>Hello World!</xsl:text>
  </xsl:function>
Run Code Online (Sandbox Code Playgroud)

但是我无法确定放置函数的位置,当我把它放在节点下时我得到一个错误,说' xsl:function'不能是'xsl:stylesheet'元素的子元素.,如果我把它放在节点下,我会收到类似的错误.

我应该把功能放在哪里?理想我想将我的函数放在外部文件中并将它们导入我的xsl文件中.

xslt xsl-fo

5
推荐指数
2
解决办法
2万
查看次数

C内存管理错误?

这是我的C程序:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#define FALSE 0
#define TRUE 1

typedef struct _Frag
{
  struct _Frag *next;
  char *seq;
  int x1;
  int length;
} Frag;

typedef struct _Fragment
{
  int type;
  Frag *frag_list;
} Fragment;

static void
free_frags (Fragment * frags, int len)
{
  int i;
  for (i = 0; i < len; i++)
    {
      Fragment *fragment = &frags[i];
      Frag *current = fragment->frag_list;

      while (current != NULL)
    {
      free (current->seq);
      fragment->frag_list = current->next; …
Run Code Online (Sandbox Code Playgroud)

c free memory-management

6
推荐指数
4
解决办法
8994
查看次数

从结构中访问变量

我们如何访问结构的变量?我有一个结构:

typedef struct {
   unsigned short a;
   unsigned shout b;
} Display;
Run Code Online (Sandbox Code Playgroud)

而在我的其他课程中,我有一个方法:

int NewMethod(Display **display)
{
   Display *disp=new Display();
   *display = disp;
   disp->a=11;
}
Run Code Online (Sandbox Code Playgroud)

**显示是什么意思?要访问我使用->过的struct变量,还有其他方法吗?

c++ pointers indirection

1
推荐指数
1
解决办法
7498
查看次数