把代码贴出来看看,或者把你的SQL语句拿出来看看

解决方案 »

  1.   

    insert into tblA(Name,Artist,Description,Type) values ('测试','JJ','TEST','','2')
      

  2.   

    insert into tblA([Name],Artist,Description,[Type]) values ('测试','JJ','TEST','','2')
    其中NAME和Type是关键字所以在程序中通不过
    要加上[]就可以搞定了
      

  3.   

    insert into tblA(Name,Artist,Description,Type) values ('测试','JJ','TEST','2')
    你还多了两上''
      

  4.   

    insert into tblA(Name,Artist,Description,Type) values ('测试','JJ','TEST','2')申明刚才这是我自己打错了,字段肯定是对应的,name 、 description 等是关键字,但是在sql server里不会影响你的操作的,加上[]和不加都可以通过,还有,我这句是在查询分析器里可以执行的
      

  5.   

    把你的ASP。NET中运行SQL语句的代码贴出来
      

  6.   

    把你的ASP。NET中运行SQL语句的代码贴出来
      

  7.   

    strSql = "insert into tblA(Name,Artist,Description,Type) values ('测试','JJ','TEST','2')strErr = mydb.ExecuteSql(strSql);
    if(strErr.Length > 0)
    {
               MessageBox.Show("记录保存失败!原因:" + strErr);
    return;
    }
    public string ExecuteSql(string Sql)
    {
    conn = GetConnectString();
    SqlConnection myConn = new SqlConnection(conn);
    try
    {
    myConn.Open();
    }
    catch(System.Data.SqlClient.SqlException ex)
    {
    strErr = "[Err Source]" + ex.Source + "[Err Descripition]" + ex.Message;
    return strErr;
    }
    try
    {
    SqlCommand myCommand = new SqlCommand(Sql,myConn);
    myCommand.Connection = myConn;
    myCommand.ExecuteNonQuery();
    }
    catch(System.Data.SqlClient.SqlException ex)
    {
    strErr = "[Err Source]" + ex.Source + "[Err Descripition]" + ex.Message;
    } myConn.Close();
    return strErr;
    }
      

  8.   

    SqlCommand myCommand = new SqlCommand(Sql,myConn);
    myCommand.Connection = myConn;
    这里多了一句myCommand.Connection = myConn;
    你去掉试试
    还有你的代码没有错误
    你是跟踪到哪条语句的?
    如果都没有错误你查一下你的数据库的ASP。NET这个用户的权限
      

  9.   

    你的连接字符串怎么写的
    标准的是这样写的:
    "server=(local); user id=sa; password=; Database=netoa"
      

  10.   

    myCommand.Connection = myConn;这一句可有可无,但不影响,因为程序里别的地方也在用,没有什么错误的。
    conn = GetConnectString();我是用这个方法得到连接字符串,数据库的连接字符串是写在config文件里的。
      

  11.   

    .Net SqlClient Data Provider[Err Descripition]
    发生这样的错误,我想你的连接字符串是不是有问题
    我还没有见到过样的问题你试试连接字符串换成
    "server=(local); user id=sa; password=; Database=netoa"
      

  12.   

    跟踪一下看看是 open时候出的错还是executenonquery时候出的错
      

  13.   

    是executenonquery()时抛出的异常
      

  14.   

    NAME和Type是关键字把这两个改成其它就可以
    或者用[]括起来
      

  15.   

    NAME和Type是关键字用[]括起来
      

  16.   

    查询分析器会自动把里面的关键字加上[],你最好先把sql语句输出来。然后放到查询分析器里执行,并把查询分析器里的语句copy回到你代码中去修改原来的代码
      

  17.   

    代码是从程序里跟踪时得到的,然后在查询分析器中可以执行,不是关键字的问题,大家看看这个信息  SET ARITHABORT 这个到底是什么意思,怎么设置。
      

  18.   

    SET ARITHABORT
    在查询执行过程中发生溢出或被零除错误时终止查询。语法
    SET ARITHABORT { ON | OFF }注释
    如果 SET ARITHABORT 为 ON,则这些错误情况将导致查询或批处理终止。如果在事务内发生错误,则回滚事务。如果 SET ARITHABORT 为 OFF 并且发生了这些错误之一,则显示一条警告消息,并给算术运算的结果赋以空值。说明  如果 SET ARITHABORT 和 SET ARITHIGNORE 都没有设置,则 Microsoft® SQL Server™ 将在执行查询后返回 NULL 和一条警告信息。
    如果 SET ARITHABORT 为 OFF 并且在对表达式的求值过程中 INSERT、DELETE 或 UPDATE 语句遇到算术错误(溢出、被零除或域错误),SQL Server 将插入或更新 NULL 值。如果目标列不可为空,则插入或更新操作失败并且用户收到错误信息。如果 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON,则当遇到被零除或溢出错误时,SQL Server 仍返回错误信息。SET ARITHABORT 的设置是在执行或运行时设置,而不是在分析时设置。在计算列或索引视图上创建或操作索引时,SET ARITHABORT 必须为 ON。如果 SET ARITHABORT 为 OFF,计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET 语句时的注意事项"。
      

  19.   

    SET ARITHABORT
    在查询执行过程中发生溢出或被零除错误时终止查询。
    但是我实在不明白执行insert 和 delete 时怎么会发生益出或被零除呢,还有,同样的语句我可以update,但是不能insert和 delete
      

  20.   

    SET ARITHABORT 的设置是在执行或运行时设置,而不是在分析时设置就是说这种在查询分析器里能通过的语句但不一定在运行时就能通过,这个我明白了,我回去再看看数据库的设置和程序。
      

  21.   

    现在我觉得我有一个极其重要的信息没有反映出来,现在看来应该是这里的错误。strSql = "insert into tblA(Name,Artist,Description,Type) values ('测试','JJ','TEST','2')实际上tblA还有两列,第一列是identity的id,第二列是根据这个id计算得到的值,这两列都是自动生成的,刚仔细看了帮助,应该是计算第二列的时候应该设置那些东西,我去改改
      

  22.   

    name description 是sql的关键字 最好换成username adescription
      

  23.   

    SET ARITHABORT ,CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ,ANSI_NULLS , ANSI_PADDING , ANSI_WARNINGS on set NUMERIC_ROUNDABORT OFF
    还是不行,why?
      

  24.   

    第一列自增,第二列是计算列,刚才没表达清。当在计算列或索引视图上创建和操作索引时,必须将 SET 选项 ARITHABORT、CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER、ANSI_NULLS、ANSI_PADDING 和 ANSI_WARNINGS 设置为 ON。必须将选项 NUMERIC_ROUNDABORT 设置为 OFF。 在计算列上有索引,我已经按照要求全部设置了,可是仍然不行,但是把这个索引删除掉以后就可以了,为什么?