小编Nul*_*ull的帖子

System.Data.Linq.ChangeConflictException:未找到或更改行

我试图使用LINQ(No LINQDataSource)删除选定的gridview行.

更改选择后,还会更改detailsview绑定.我可以向数据库添加一个新条目,但是当我将此代码添加到updatePanel内的删除按钮时,我得到一个异常:

try
{           
    var query = from i in db.QuestionModules 
                where i.QuestionModuleID == QuestionModuleID 
                select i;

    QuestionModule o = query.First();
    db.QuestionModules.DeleteOnSubmit(o);
    db.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的例外:

System.Data.Linq.ChangeConflictException: Row not found or changed. at
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode
failureMode) at
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
at System.Data.Linq.DataContext.SubmitChanges() 
Run Code Online (Sandbox Code Playgroud)

我已经有这个问题大约一个星期,无论我做什么,它仍然存在,并且记录不会被删除.

关于该怎么做的任何想法?

.net c# linq

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

如何使用Boost解析ini文件

我有一个ini文件,其中包含一些示例值,如:

[Section1]
Value1 = 10
Value2 = a_text_string
Run Code Online (Sandbox Code Playgroud)

我正在尝试加载这些值并使用Boost在我的应用程序中打印它们,但我不明白如何在C++中执行此操作.

我在这个论坛中搜索,以便找到一些例子(我总是使用C,所以我在C++中不是很好)但我只找到了关于如何一次性从文件中读取值的示例.

我需要在我想要的时候只加载一个值,比如string = Section1.Value2因为我不需要读取所有的值,而只需要读取其中的一些值.

我想加载单个值并将它们存储在变量中,以便在我的应用程序中使用它们时使用它们.

使用Boost可以做到这一点吗?

目前,我正在使用此代码:

#include <iostream>
#include <string>
#include <set>
#include <sstream>
#include <exception>
#include <fstream>
#include <boost/config.hpp>
#include <boost/program_options/detail/config_file.hpp>
#include <boost/program_options/parsers.hpp>

namespace pod = boost::program_options::detail;

int main()
{
   std::ifstream s("file.ini");
    if(!s)
    {
        std::cerr<<"error"<<std::endl;
        return 1;
    }

    std::set<std::string> options;
    options.insert("Test.a");
    options.insert("Test.b");
    options.insert("Test.c");

    for (boost::program_options::detail::config_file_iterator i(s, options), e ; i != e; ++i)
        std::cout << i->value[0] << std::endl;
   }
Run Code Online (Sandbox Code Playgroud)

但这只是读取for循环中的所有值; 相反,我只想在需要时读取单个值,并且我不需要在文件中插入值,因为它已经用我在程序中需要的所有值写入.

c++ ini parsing boost

60
推荐指数
1
解决办法
6万
查看次数

更新基础数据源时刷新DataGridView的最佳方法

更新基础数据源时刷新DataGridView的最佳方法是什么?

我经常更新数据源,并希望在发生时向用户显示结果.

我已经得到了这样的东西(并且它可以工作),但是忽略DataGridView.DataSource它似乎不是正确的方式.

List<ItemState> itemStates = new List<ItemState>();
dataGridView1.DataSource = itemStates;

for (int i = 0; i < 10; i++) { 
    itemStates.Add(new ItemState { Id = i.ToString() });
    dataGridView1.DataSource = null;
    dataGridView1.DataSource = itemStates;
    System.Threading.Thread.Sleep(500);
}
Run Code Online (Sandbox Code Playgroud)

.net c# datagridview winforms

55
推荐指数
3
解决办法
9万
查看次数

如何使用doxygen记录C++模板和模板元函数?

是否有关于如何使用Doxygen记录C++模板和模板元函数的指南?

例如:

/// @brief metafunction for generation of a map of message types to
/// their associated callbacks.
/// @tparam Seq the list of message types
template< class Seq >
struct generate_callback_map
{
    typedef typename mpl::transform< Seq
                                   , build_type_signature_pair< mpl::_1 > 
                                   >::type vector_pair_type;
    typedef typename fusion::result_of::as_map< vector_pair_type >::type type;
};
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经看到了以下建议:

  • @tparam 用于记录模板参数.
  • @arg 记录模板参数的替代方法.
  • @brief 用于描述元功能.

如何记录元函数的"返回类型"?

有没有人对使用Doxygen和C++模板有任何好的建议或个人喜好?

c++ templates doxygen

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

std :: transform和std :: for_each有什么区别?

两者都可用于将函数应用于一系列元素.

在高层次上:

  • std::for_each 忽略函数的返回值,并保证执行的顺序.
  • std::transform 将返回值赋给迭代器,并不保证执行的顺序.

你什么时候喜欢使用那个?有任何微妙的警告吗?

c++ stl-algorithm c++11

52
推荐指数
3
解决办法
4万
查看次数

Java中的main方法可以返回一些东西吗?

我最近接受了一次采访,他们问我核心Java中的两个问题.

问1.

我们可以编写一个java类:

public static int main(String[] args){
     System.out.println("Hello");
Run Code Online (Sandbox Code Playgroud)

我回答:没有.编译器不会编译它,因为它是预期的返回类型mainint,虽然我们可以重载它.

问题2:我无法回答的下一个问题.

编写一个程序,以便您的Java main方法可以返回一些东西.

即你怎么能public static void main([] args)回报什么?

任何人都可以帮我解答这个问题吗?

java

46
推荐指数
3
解决办法
8万
查看次数

对std :: runtime_error和std :: logic_error感到困惑

我最近看到,logic_error如果命令行输入不可解析,boost program_options库会抛出一个.这挑战了我对logic_errorvs.的假设runtime_error.

我认为逻辑错误(logic_error及其派生类)是由于内部无法遵守程序不变量而导致的问题,通常是以内部API的非法参数形式出现的.从这个意义上讲,它们大部分相当于ASSERT,但意味着在已发布的代码中使用(与ASSERT不同,它通常不会编译成已发布的代码.)它们在调试/测试版本中集成单独的软件组件是不可行的情况下非常有用.或者失败的后果使得向用户提供关于无效不变条件的运行时反馈是很重要的.

类似地,我认为runtime_errors仅由程序员控制之外的运行时条件产生:I/O错误,无效的用户输入等.

但是,program_options显然(主要是?)被用作解析最终用户输入的一种方法,所以在我的心理模型中它肯定应该runtime_error在输入错误的情况下抛出.

我哪里错了?你是否同意异常打字的提升模型?

c++ boost stl exception

45
推荐指数
3
解决办法
1万
查看次数

目标文件包含什么?

在C或C++编译的各个阶段,我知道生成了一个目标文件(即any_name.o文件).这个.o文件包含什么?我无法打开它,因为它是一个二进制文件.

有人可以帮帮我吗?目标文件的内容主要依赖于我们在Unix上使用的编译器吗?

c c++ compilation

45
推荐指数
6
解决办法
3万
查看次数

一个类如何拥有自己类型的成员,这不是无限递归吗?

假设我定义了一个类,该类具有与其自身相同类型的变量作为成员.

public class abc {
    private abc p;
}
Run Code Online (Sandbox Code Playgroud)

这实际上是有效的,令我惊讶.

为什么我认为它不应该:创建一个实例abc,它包含一个类型的变量abc,其中包含一个类型的变量abc,其中包含一个类型的变量abc,其中.....

显然我错了,有人可以告诉我如何?

java oop class

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

Boost PropertyTree:检查孩子是否存在

我正在尝试编写XML解析器,将XML文件解析为a boost::property_tree并解决了这个问题.如何(快速)检查某个房产的孩子是否存在?

显然我可以迭代所有使用的孩子BOOST_FOREACH- 但是,这不是更好的解决方案吗?

c++ boost boost-propertytree

36
推荐指数
3
解决办法
4万
查看次数