我使用的是Code First方法的entity framework5。 我需要从存储过程读取返回值; 我已经阅读输出参数和发送input参数,但我不知道如何读取返回值。 可能吗? 这里是我用来调用存储过程的代码: var outParam = new SqlParameter(); outParam.ParameterName = "@StatusLog"; outParam.SqlDbType = SqlDbType.NVarChar; outParam.Size = 4000; outParam.Direction = ParameterDirection.Output; var code = new SqlParameter(); code.ParameterName = "@Code"; code.Direction = ParameterDirection.Input; code.SqlDbType = SqlDbType.VarChar; code.Size = 20; code.Value = "123"; var data = _context.Database.SqlQuery<Item>("exec spItemData @Code, @StatusLog OUT", code, outParam); var […]
当多个文件被放入监视的目录时,我遇到了FileSystemWatcher的问题。 我想parsing文件,只要它被放置在目录中。 通常情况下,第一个文件parsing正常,但将第二个文件添加到目录会导致访问问题。 偶尔,第一个文件甚至不parsing。 只有一个应用程序正在运行并看着这个目录。 最终,这个过程将在多台机器上运行,他们将会看到一个共享目录,但只有一台服务器可以parsing每个文件,因为数据被导入到数据库中,并且没有主键。 这是FileSystemWatcher代码: public void Run() { FileSystemWatcher watcher = new FileSystemWatcher("C:\\temp"); watcher.NotifyFilter = NotifyFilters.FileName; watcher.Filter = "*.txt"; watcher.Created += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); } 然后parsing该文件的方法: private void OnChanged(object source, FileSystemEventArgs e) { string line = null; try { using (FileStream fs = new FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.None)) { […]
我正在寻找一种方法来将预处理器标记转换为string。 具体来说,我在某个地方得到了: #define MAX_LEN 16 我想用它来防止缓冲区溢出: char val[MAX_LEN+1]; // room for \0 sscanf(buf, "%"MAX_LEN"s", val); 我打开其他方式来完成同样的事情,但只有标准库。
例如,如何避免两次写'func_name'? #ifndef TEST_FUN # define TEST_FUN func_name # define TEST_FUN_NAME "func_name" #endif 我想遵循“ 单点实施规则”。 C预处理器的版本: $ cpp –version cpp (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14)
我有一系列返回unique_ptr<Base>的工厂。 然而,它们提供了指向各种派生types的指针,即unique_ptr<Derived> , unique_ptr<DerivedA> , unique_ptr<DerivedB>等。 鉴于DerivedA : Derived和Derived : Base我们会有: unique_ptr<Base> DerivedAFactory() { return unique_ptr<Base>(new DerivedA); } 我需要做的就是将指针从返回的unique_ptr<Base>到某个派生级别(不一定是原来的内部级别)。 为了说明伪代码: unique_ptr<Derived> ptr = static_cast<unique_ptr<Derived>>(DerivedAFactory()); 我正在考虑通过从unique_ptr释放对象,然后使用一个函数来转换原始指针并将其重新分配给另一个所需flavor的unique_ptr ( release将在调用之前由调用方明确完成): unique_ptr<Derived> CastToDerived(Base* obj) { return unique_ptr<Derived>(static_cast<Derived*>(obj)); } 这是有效的,还是会有一些质朴的事情呢? PS。 还有一个复杂的问题,一些工厂驻留在运行时dynamic加载的DLL中,这意味着我需要确保生成的对象在创build时在相同的上下文(堆空间)中被销毁。 所有权的转移(通常发生在另一个环境中)必须从原始上下文中提供一个删除者。 但是除了必须提供/删除指针以外,投射问题应该是相同的。
在删除指针之前,我经常会看到遗留代码检查NULL , if (NULL != pSomeObject) { delete pSomeObject; pSomeObject = NULL; } 删除它之前是否有任何理由检查NULL指针? 之后将指针设置为NULL的原因是什么?
我开始我的第一个ASP.NET MVC项目,所以我有一个简单的问题。 我有以下代码: foreach(var question in Model.GeneralQuestions) { <div class = "well"> <h3> <strong>@question.QuestionString</strong> </h3> @foreach (var answer in question.PossibleAnswers) { @Html.RadioButtonFor(model => question.QuestionString, answer.Answer) @Html.Label(answer.Answer) <br /> } </div> } Model.GeneralQuestions中的所有问题都是唯一的,所以单选button应该按名称属性分组(每个单选button一组)。 但是这个代码只产生一个组,所以当我第一个回答第一个问题时就会被取消select。 我需要改变什么? 编辑 我的模型看起来像: public class StudentViewModel { public Student Student { get; set; } public List<Question> GeneralQuestions { get; set; } public […]
只是想知道一个文字string是一个左值还是右值。 其他文字(如int,float,char等)是左值还是右值? 函数的返回值是左值还是右值? 你怎么区分这个区别?
我正在使用一个表作为消息队列,并通过使用SqlDependency“注册”了更新。 我读到的每个人都在说要注意它的局限性,而不是特别说明它们是什么。 从我收集的信息来看,当桌子的更新频率非常高时,会有问题,幸运的是我只能看到每分钟最多10-20个值。 SqlServer的其他限制/影响是什么?
我想知道如果我们可以在C / C ++中有recursionmacros吗? 如果是,请提供一个示例。 第二件事:为什么我不能执行下面的代码? 我在做什么错误? 是因为recursionmacros吗? # define pr(n) ((n==1)? 1 : pr(n-1)) void main () { int a=5; cout<<"result: "<< pr(5) <<endl; getch(); }