SqlCommand中的字符串列表通过C#中的参数

在C#中使用SqlCommand我在where子句中创建了一个包含IN(list …)部分的查询。 而不是循环我的字符串列表生成我需要查询的列表(如果您认为在sqlInjection中是危险的)。 我以为我可以创建一个参数,如: SELECT blahblahblah WHERE blahblahblah IN @LISTOFWORDS 然后在代码中我尝试添加如下参数: DataTable dt = new DataTable(); dt.Columns.Add(“word”, typeof(string)); foreach (String word in listOfWords) { dt.Rows.Add(word); } comm.Parameters.Add(“LISTOFWORDS”, System.Data.SqlDbType.Structured).Value = dt; 但这不起作用。 问题: 我在尝试一些不可能的事吗 我采取了错误的做法吗? 这种方法我有错吗? 谢谢你的时间 :)

如何在c#中每隔几秒调用一个特定的方法?

“机器人游戏”是我开发的第一款基本游戏。 洋红色’#’角色是一个敌人,它应该在这张地图中随机移动,但它的随机移动速度太快我试图使用线程,但它会影响所有角色的速度。 现在,我需要每100毫秒调用一次“Enemy”方法。 机器人游戏图片:

EntityState.Deleted不起作用,Remove(entity)呢?

我在尝试读取记录时一直在与EF斗争,然后在同一个事务中删除这些记录。 我最初使用的是EntityState.Deleted方法,它会产生错误: 操作失败:无法更改关系,因为一个或多个外键属性不可为空。 当对关系进行更改时,相关的外键属性将设置为空值。 如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象。 但是如果我把它改成我下面的那个,使用.Remove(),那么一切都很好。 有什么区别和最佳使用时间.Remove()vs .Deleted? 我怎么能使用.Deleted方法来完成这项工作? 我已经尝试创建一个新的上下文实例到我的存储库读取和另一个删除,但后来得到的错误与IEntityTracker无法跟踪多个实例…我也试过.Include在初始读取时加载依赖记录进入EF所以它知道并删除它们。 我也尝试过。先读取读取记录。 一切都无济于事。 这是有问题的方法。 请注意,我确实有一个使用.Deleted方法的通用存储库,该方法在此方案之前一直很好用(读取然后删除相同的记录。) //Delete Allocation Need and AllocatedContainers for alloc need id public ActionConfirmation DeleteAllocRecords(int intFacilityId, AllocNeedSourceTypes needSourceType, int intNeedSourceId) { var context = new InventoryMgmtContext(); var repository = new AllocationNeedRepository(context); //Delete Allocation Need and hence children in Allocated Containers var srcType = needSourceType.ToString(); […]

如何使用OfType 过滤到generics类型的所有变体

我想使用List使用它们的类型过滤List对象。 我的问题是,某些对象属于通用接口类型,但它们没有自己的公共inheritance接口。 我有以下定义: public interface ISeries public interface ITraceSeries : ISeries public interface ITimedSeries : ISeries //and some more… 我的列表包含各种ISeries ,但现在我想只获取ITraceSeries对象,无论它们实际定义的generics类型参数如何,如下所示: var filteredList = myList.OfType<ITraceSeries>(); //invalid argument! 我怎样才能做到这一点? 一个不受欢迎的解决方案是引入一个inheritance自ISeries的类型ISeries : public interface ITraceSeries : ITraceSeries 然后,使用ITraceSeries作为filter。 但这并没有真正添加新信息,只会使inheritance链更复杂。 在我看来,这似乎是一个常见问题,但我没有在SO或网络上找到有用的信息。 感谢帮助!

如何在窗口格式的datagridview的单元格中放置自定义控件

我正在开发一个窗口表单应用程序。 我需要在数据网格视图的单元格中放置包含两个标签的自定义控件。 我已经创建了自定义控件。请指导我使用自定义控件填充单元格

无法推断出Action 中的type参数,但是从Func 可以得到

我一直在玩仿制药和代表,我发现了一些我不理解的东西。 我有非常相似的通用静态方法,一个接受Action ,第二个接受Func 。 现在的问题是:如果我在没有显式类型的情况下调用接受Func那个,编译器就可以了。 但是接受Action无法编译我的程序(请参阅错误消息的代码)。 我的问题是:为什么编译器能够识别返回类型,但是无法识别参数类型? public interface IMessage { } public class Message : IMessage { } static void HandleAction(Action action) where TMessage : IMessage { } static void HandleFunction(Func action) where TMessage : IMessage { } static void A(Message message) { } static Message F() { return new Message(); } static void […]

如何在网页上获得单词数量?

我需要在网页上获得WORDS的总数。 我知道System.Net.WebClient类。 但它的DownloadString()方法返回整个HTML标记,因为我需要的只是TEXT,这样我就能算出单词的数量。 任何想法/建议欢迎。

在分配控制台之前调用Console.WriteLine

我最近遇到了我的应用程序的以下问题:尽管已使用AllocConsole分配了控制台,但它没有显示任何控制台输出。 我很快就弄明白,这是由于在调用AllocConsole之前写入控制台的尝试(深深隐藏在代码中)引起的。 所以它看起来像这样: Console.WriteLine(“Foo”); // no console allocated yet AllocConsole(); // console window appears Console.WriteLine(“Bar”); // expecting “Bar” in the console, but the console is blank 所以我的问题是:为什么会发生这种情况? 我没有看到任何例外(虽然我认为他们在那里)。

c#如何在将字符串移动到资源以进行本地化时处理Newline字符?

我正在用c#编写一个应用程序。出于本地化的目的,我将所有的字符串都移到了资源上。 字符串的一些示例: “First sentence.\n Second sentence.” “wait…” 在第一个字符串中有换行符”\n”我应该将换行符移动到资源。 在第二个字符串中,我应该将三个点移动到资源还是应该将字符串拆分为两个部分,如”wait” + “…”并仅将”wait”移动到资源。 我正在使用谷歌翻译将字符串翻译成其他语言,我担心换行字符”\n”将无法通过谷歌翻译很好地翻译成其他语言,因此我犹豫是否将新行字符转移到资源上。 这是我对本地化的第一次看法。如果您有任何进一步的想法或指出我正确的方向,建议。 谢谢。

表单关闭时的MessageBox

我在关闭应用程序之前使用此代码进行提问,但它无法正常工作。 我的代码如下。 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult dlgresult = MessageBox.Show(“Exit or no?”, “My First Application”, MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dlgresult == DialogResult.No) { e.Cancel = true; } else { Application.Exit(); } }