在执行sqlcom.ExecuteNonQuery()的时候,是不是返回受影响的行数?
result = sqlcom.ExecuteNonQuery();
                if (result < 1)
                {
                    return false;
                }
                return true;
为什么就是返回false呢,明明有保存数据啊

解决方案 »

  1.   

    对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。
      

  2.   

    这个你在网上搜索就能找到答案的
    这个函数执行数据更新操作(update,delete,add)返回都是影响函数,如果是select操作不应该用这个来进行而应该使用excutescalar或者excutedatareader
      

  3.   

    您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。-------------------msdn标准解释
      

  4.   

    都是msdn上的,我只是UPDATE、INSERT 和 DELETE ,但是返回的跟我预料的就是不一样啊,明明保存了,还是返回false
      

  5.   

    public override bool DeleteWebArchives(int webArchivesID)
            {
                using (SqlConnection myConnection = GetSqlConnection())
                {
                    SqlCommand sqlcom = new SqlCommand(databaseOwner + ".extend_DeleteWebArchives", myConnection);
                    sqlcom.CommandType = CommandType.StoredProcedure;
                    sqlcom.Parameters.Add("@WebArchivesID", SqlDbType.Int).Value = webArchivesID;
                    int result = 0;
                    myConnection.Open();
                    result = sqlcom.ExecuteNonQuery();
                    if (result<1)
                    {
                        return false;
                    }
                    return true;
                }
            }
    ===========
    删除成功但返回的还是false
      

  6.   

    NonQuery就是非查询的意思得嘛在你select的时候是不会返回行数的。只会返回-1楼主知道了吧?
      

  7.   

    你的存储过程没有任何返回值,sqlcom.ExecuteNonQuery总为-1
      

  8.   

    NonQuery就是非查询的意思得嘛在你select的时候是不会返回行数的。只会返回-1楼主知道了吧?
    ==================
    我的不是查询啊是更新
      

  9.   

    如果我想知道Select操作选中了多少行怎么办啊???