我从excel电子表格中的客户端获得了大量数据库信息.我经常需要将这些数据插入/更新回数据库.
我经常使用excel通过将一堆单元连接在一起来生成插入和更新语句.有时,数据包括可以在其中包含单引号的文本单元格.如果不仔细处理,这些单引号将使SQL语句中断.
当将一堆单元格值连接在一起时,如何通过公式转义文本数据中的单引号,以便生成的SQL脚本有效?
我刚刚回到游戏开发阶段,我对XNA印象非常深刻.我唯一的问题是我想要一个基于免费社区的2D游戏引擎,以便我可以利用社区的力量.有没有人知道目前正在支持的XNA 2d游戏引擎还是我必须自己编写一个?
序言:
我正在使用XNA内容项目来保存我正在使用的所有各种纹理(以及可能的其他资源)作为开发游戏的一部分.
将图像从Content项目加载到XNA纹理对象的默认方法涉及使用硬编码字符串文字指向各种文件.
我想自动将内容项目中的目录/文件树投影到对象层次结构中,以避免直接使用字符串文字,并获得使用强类型对象的好处.
示例:
而不是使用
Texture2D tex = Content.Load("Textures/defaultTexture32");
我更喜欢
Texture2D tex = Content.Load(Content.Textures.defaultTexture32);
问题:
这个问题是否已有解决方案?(我在谷歌找不到任何东西)
额外的细节:
我相当肯定这可以通过T4模板完成; 可能与DTE工具一起使用.我已经初步尝试这样做了,但由于我对两种工具都缺乏经验,我一直在打块,但我过去曾与T4MVC合作过类似的事情.不幸的是,它投射的是类结构而不是文件系统,并且不易调整.
我不要求解决方案使用T4或DTE,它们看起来好像很可能是解决方案的一部分.
仅包含属于VS项目(而不是整个磁盘上文件系统)的文件将是更可取的,但不是必需的.
按文件类型等进行额外过滤的能力将是额外的特殊奖励.
对于那些没有立即看到这样做的好处的人; 考虑重命名或删除文件会发生什么.应用程序将继续编译正常,但它会在运行时崩溃.也许直到满足某个特定文件才能访问某个文件.如果将所有文件名都投影到一个对象结构中(每次构建项目时都会重新生成,或者甚至每次修改时都会重新生成),那么您将得到编译时错误,指出缺少的资源并可能避免很多未来痛.
谢谢你的时间.
我正在使用ASP.NET 4.0和MVC 2.0开发应用程序.如果它有任何相关性,我正在使用VS2010.
我正在使用TempData遇到并发症.我没有写原始代码,但它无法正常工作,我正在尝试修复它.我没有很多使用TempData和ViewData的经验.
我的索引操作如下(伪代码):
public virtual ActionResult Index()
{
var vm = new IndexViewModel();
// some code here to set up the ViewModel
if (TempData.ContainsKey("Success"))
vm.Success = true;
return View(MVC.Controller.Views.Index, vm);
}
Run Code Online (Sandbox Code Playgroud)
我有一个POST动作如下(伪代码):
[HttpPost]
public virtual ActionResult Index(IndexViewModel vm, List<int> formData)
{
if (DoSomethingWithData(formData))
{
TempData["Success"] = true;
return RedirectToAction(MVC.Controller.ActionNames.Index);
}
TempData["Message"] = "Failed to use formData";
return View(MVC.Controller.Views.Index, vm);
}
Run Code Online (Sandbox Code Playgroud)
如果vm.Success为true,则视图将发出一个表单并在其前面显示成功消息.如果它存在,它还将在TempData ["Message"]中发出消息.
我第一次来到页面时,我得到了表单.我输入INVALID表单数据并提交...我得到的表单前面有错误消息,如预期的那样.(我知道这里的设计很差,因为它没有重定向......而且你的刷新等用户体验很差,但是我还没有担心)这一切都很棒.
当我使用VALID表单数据时,问题就会出现.如果我提交有效的表单数据,我会按照预期的那样在页面前面显示成功消息,但如果我刷新页面,则成功消息仍然存在.事实上,如果我去网站的一个完全不同的部分并导航回来,成功的信息仍然存在.由于某种原因,重定向和读取后,tempdata仍然存在.有重定向和读取...现在不应该清楚临时数据吗?
我有理由确定我导航到的其他地方没有出于任何原因设置TempData ["成功"],但为了确保我已经导航到谷歌之类的东西,并直接回到此页面的URL,它似乎仍然填充了TempData ["Success"].
很明显,要么我不清楚地理解TempData应该如何运作(不足为奇),要么发生一些不寻常的事情,我根本没有经验可以看到.
欢迎任何建议!
谢谢,戴夫
[编辑]
当有成功消息时,视图实际上不会发出表单...它只发出成功消息.
视图看起来或多或少像这样:
<% if (TempData.ContainsKey("Message")) …
Run Code Online (Sandbox Code Playgroud) 序言:
我的核心问题与此非常类似:如何在不将IQueryable暴露给我的应用程序的其余部分的情况下编写一个干净的存储库?一直没有答案.我希望如果我以不同的方式解决问题,并提出一个稍微不同的问题,我可能会得到一个结果.我将重复这个问题的一些内容,以避免要求读者阅读上下文.
问题:
我正在使用POCO实体和实体框架4.我试图在应用层允许对实体集进行复杂的ad-hoc过滤,同时试图避免暴露在IQueryable<T>
我的存储库边界之外.这让我有些困难.
我不想在存储库上创建一个带有大量参数的单个大规模过滤器方法,例如:
IEnumerable GetFilteredCustomers(string nameFilter, string addressFilter, bool isActive, int customerId, ...)
Run Code Online (Sandbox Code Playgroud)
这不仅非常麻烦,而且看起来非常难看,特别是如果它主要是一堆零点等等.它也不像我想的那样可维护.
我不想在存储库上创建大量的过滤方法,例如:
IEnumerable GetActiveCustomers()
IEnumerable GetCustomersByName()
Run Code Online (Sandbox Code Playgroud)
这种方法存在许多问题,包括需要大量的方法列表,n!
如果我希望能够以任意方式组合它们,那么n就是可用过滤条件的数量.(即所有名为George的活跃客户).也很难维护.
我不想创建可操作的可链接方法(Fluent Interface)IEnumerable<T>
,因为最终需要从数据库中返回一个巨大的结果集并将其过滤到内存中,这不是一个可扩展的解决方案.
我无法创建一个操作的Fluent界面,IQueryable<T>
因为正如我已经说过的,我不想暴露IQueryable<T>
过去的存储库.
我想避免简单地通过传入一个充满参数而不是大参数列表的对象来重复单个大规模过滤方法,尽管此时这可能是最不丑的解决方案.
想法:
最终,我认为一个理想的解决方案是发现一些方法来创建一个不知道源的完整查询,并将其存储为参数.然后我可以将其传递到知道源的存储库中,并将查询应用于源并返回结果.
澄清; 与上面提到的简单地创建参数对象相反,我想使用原始LINQ查询,但是以某种方式将它们存储在变量中,并稍后将它们应用于数据源.我怀疑返回类型必须提前知道,但我完全可以定义并事先知道它.
要从另一个角度查看它,请考虑以下事项:
IQueryable<Customer> filteredCustomers = customerRepository.GetAll()
.Where(c => c.FirstName == "Dave")
.Where(c => c.IsActive == true)
.Where(c => c.HasAddress == true)
;
Run Code Online (Sandbox Code Playgroud)
我想将三个Where子句打包为一个查询对象,与customerRepository.GetAll()完全分开,将其作为参数传递并稍后应用.
我敢肯定,这里可能发生了一堆我不太了解的事情,因此,如果这是一个愚蠢的问题,或者缺少明显的细节,请原谅我。
我有一个Visual Studio 2015解决方案,我已经从.NET 4.5.1升级到.NET 4.7.1。该解决方案由一个网站(不是Web应用程序)项目和几个库组成。这些库实际上没有任何依赖关系(彼此之间除外),它们以.NET 4.7.1为目标时,它们没有使用,不需要或引用.NETStandard.Library。
当我特别编译其中一个库时,它会不断将一堆.NET 4.7.1门面dll复制到网站bin文件夹中。不幸的是,该网站是Kentico 11应用程序,并且它一直试图加载System.IO.Compression.ZipFile门面,并对其进行限制,因为它是参考程序集,而不是实际程序集。
如果删除.dll,则一切运行正常...但是我不想每次都删除它,也不想添加构建后事件来删除它。那真是愚蠢。
谁能帮助我了解这里发生的事情以及如何清理它?
c# ×3
xna ×2
.net ×1
.net-4.7.1 ×1
2d ×1
apostrophe ×1
asp.net ×1
dll ×1
excel ×1
kentico ×1
linq ×1
replace ×1
sql ×1
substitution ×1
xna-4.0 ×1