Tag: c#

无法在System.Int32和System.String上执行“Like”操作。 DataGridView搜索和过滤

我有一个表单,当我从ComboBox中选择一个列名,并在文本框中键入它时,它会过滤并在DataGridView中显示搜索的条件。 当我搜索“引用”时,它是一个int数据类型,也是标识和主键。 我收到错误消息: “无法在System.Int32和System.String上执行’Like’操作。” 我的代码是 DataTable dt; private void searchForm_Load(object sender, EventArgs e) { SqlCeConnection con = new SqlCeConnection(@”Data Source=|DataDirectory|\LWADataBase.sdf;”); SqlCeDataAdapter sda = new SqlCeDataAdapter(“select * from customersTBL”, con); dt = new DataTable(); sda.Fill(dt); dataGridView1.DataSource = dt; comboSearch.Items.Add(“[Reference]”); comboSearch.Items.Add(“[First Name]”); comboSearch.Items.Add(“[Surename]”); comboSearch.Items.Add(“[Address Line 1]”); comboSearch.Items.Add(“[Address Line 2]”); comboSearch.Items.Add(“[County]”); comboSearch.Items.Add(“[Post Code]”); comboSearch.Items.Add(“[Contact Number]”); comboSearch.Items.Add(“[Email Address]”); } […]

在C#中以编程方式创建WCF客户端的标头(wsse)部分

如何以编程方式在app #config中创建app.config服务设置的以下部分: someusername somepassword 我设法从c#生成绑定部分(上面没有包含)和端点部分。 我无法创建标题部分。 出现的错误是:(这是因为当我从c#生成所有内容时,我没有标题部分) 此服务需要 ,缺少该服务。 header部分很重要,好像我从配置中排除它并使用config运行代码它也会产生上述错误。 我不想使用web.config / app.config。 我必须从C#运行所有东西。 (上面的app.config工作正常,但我想通过c#做同样的事情) 注意:以下更新是基于以下提供的解决方案请通过以下解决方案的评论,以获得更好的理解 更新1 :(首先以编程方式使用BasicHttpBinding) BasicHttpBinding binding = new BasicHttpBinding(); binding.Name = “Contact”; binding.CloseTimeout = TimeSpan.FromMinutes(1); binding.OpenTimeout = TimeSpan.FromMinutes(1); binding.ReceiveTimeout = TimeSpan.FromMinutes(10); binding.SendTimeout = TimeSpan.FromMinutes(1); binding.AllowCookies = false; binding.BypassProxyOnLocal = false; binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard; binding.MaxBufferSize = 524288; binding.MaxBufferPoolSize = 524288; binding.MaxReceivedMessageSize = […]

使用Moq在C#中设置索引器

我无法弄清楚如何使用Moq在C#中设置索引器 。 Moq文档很薄弱,我已经做了很多搜索……我想做的事情在如何设置索引属性的解决方案中类似: var someClass = new Mock(); someClass.SetupSet(o => o.SomeIndexedProperty[3] = 25); 我想修改上面的内容以适用于任何索引和任何值,所以我可以这样做: someClass.Object.SomeIndexedProperty[1] = 5; 目前我有以下内容,它对索引属性getter非常有用,但如果我设置了值,则Moq会忽略它: var someValues = new int[] { 10, 20, 30, 40 }; var someClass = new Mock(); someClass.Setup(o => o.SomeIndexedProperty[It.IsAny()]) .Returns(index => someValues[index]); // Moq doesn’t set the value below, so the Assert fails! someClass.Object.SomeIndexedProperty[3] = 25; Assert.AreEqual(25, […]

$ select和$ expand break ODataQueryOptions – 如何修复?

我们将Microsoft ASP.NET MVC OData WebAPI用于我们的Web服务。 由于围绕层次结构ID的某些数据架构问题(这些问题超出了此对话的范围),我们的一些GET操作必须使用ODataQueryOptions并手动操作表达式以添加其他限制。 我们这样做(删除error handling代码并调用内联的其他方法) public IQueryable Get(ODataQueryOptions oDataQueryOptions) { IQueryable result; IQueryable dataSet = context.Persons; var tempQuery = oDataQueryOptions.ApplyTo(dataSet).Cast(); var modifier = new HierarchyNodeExpressionVisitor(GetDescendantsOfNode, GetAncestorsOfNode); var expression = modifier.ModifyHierarchyNodeExpression(tempQuery.Expression); result = context.Persons.Provider.CreateQuery(expression); return result; } 这已经有一段时间了,但是我们一直在急切地等待选择和扩展,以便我们能够更好地控制从服务中获得的数据。 星期一我们将我们的开发环境更新为WebApi OData 5.0.0-rc1并进行了select-and-expand工作,但我们不能将它用于使用ODataQueryOptions的这些服务。 我们只能用它来对付我们的其他服务。 如果我们使用$select和/或$expand查询上面的代码,我们会收到以下错误: “message”: “The ‘ObjectContent`1’ type failed to serialize the response body […]

为什么字符串的行为类似于ValueType

在执行这段代码之后,我感到很困惑,其中字符串似乎表现得好像它们是值类型。 我想知道赋值运算符是否运行像字符串的相等运算符之类的值。 这是我为测试此行为而执行的一段代码。 using System; namespace RefTypeDelimma { class Program { static void Main(string[] args) { string a1, a2; a1 = “ABC”; a2 = a1; //This should assign a1 reference to a2 a2 = “XYZ”; //I expect this should change the a1 value to “XYZ” Console.WriteLine(“a1:” + a1 + “, a2:” + a2);//Outputs a1:ABC, a2:XYZ […]

将BitmapImage设置为null时,内存不会被释放

我有一个对象集合,每个对象包含一个BitmapImage。 我把这个集合绑定到FlipView。 当用户在FlipView中翻转页面时,所选对象的BitmapInmage将从ApplicationData加载,并将前一个对象的BitmapImage设置为null以释放内存。 问题是,内存永远不会松懈,应用程序在翻转一段时间后崩溃。 当我查看集合时,只有实际项目设置了BitmapImage,所有其他项目都将其设置为null。 那么我该如何减轻记忆? 我加载图片的方式: StorageFile s = await ApplicationData.Current.LocalFolder.GetFileAsync(localFilename); BitmapImage bitmapImage = new BitmapImage(); using (var stream = await s.OpenAsync(FileAccessMode.Read)) { bitmapImage.SetSource(stream); } return bitmapImage; 编辑:我认为问题可能是我加载图像的方式,我想文件流不会被释放

获取Outlook 2007中当前用户的电子邮件地址

我有一个用C#编写的Outlook添加。 我想知道如何获得当前用户的电子邮件地址? 谢谢

通过异步同步避免死锁并防止UI响应

我们有一个由WPF和/或Winforms客户端使用的库。 我们提供了一个类似于的异步方法: Task GetIntAsync() 我们(不幸的是)还提供了一个同步包装器方法: int GetInt(); 它基本上只是调用异步方法并调用.Result来完成它的任务。 我们最近意识到在某些情况下GetIntAsync一些代码需要在主UI线程上运行(它需要使用标记为“单个”线程模型的传统COM组件(即组件必须在主STA线程中运行而不仅仅是任何STA线程) 所以问题是当在主线程上调用GetInt()时,它将会死锁 .Result阻塞主线程, GetIntAsync()的代码使用Dispatcher.Invoke尝试在主线程上运行。 同步方法已被消耗,因此删除它将是一个重大变化。 因此,我们选择在同步GetInt()方法中使用WaitWithPumping来允许调用主线程。 除了从UI代码中使用GetInt()客户端之外,这种方法GetInt() 。 以前,他们预计使用GetInt()会使UI无法响应 – 也就是说,如果他们从按钮的click事件处理程序中调用GetInt() ,他们会期望在处理程序返回之前不会处理任何Windows消息。 现在消息被抽取,他们的UI响应,并且可以再次点击相同的按钮(并且他们可能不会将其处理程序编码为可重入)。 如果有合理的解决方案,我们希望我们的客户不需要在调用GetInt期间针对响应的UI进行GetInt 题: 有没有办法做一个WaitWithPumping ,它将泵出“调用主要”消息,但不会WaitWithPumping其他与UI相关的消息? 如果客户端UI的行为就像当前显示模式对话框一样,虽然是隐藏的(即用户无法访问其他窗口),但这足以满足我们的目的。 但是,从我读到的内容来看,你无法隐藏modal dialog。 您可以想到的其他解决方法将不胜感激。

如何使用C#连接到Mysql?

我只是C#的初学者。 我正在使用XAMPP服务器用于MySQL数据库和Visual C#2010.然后我在phpMyAdmin中创建了一个名为“testdb”的数据库和一个名为“login”的表。 我在表格中输入了用户名和密码。 我正在做一个简单的WinForm登录,在那里我为用户名和密码以及一个按钮创建了两个文本框。 我完成了我的代码并且没有编译器错误。 但我在一条线上遇到了麻烦。 它说“无法连接到任何指定的MySQL主机”。 我将MySql.Data添加到我的引用中。 我想在登录时获取数据库表中的数据。然后授权用户或如果不匹配,则会提示错误消息。 这是我的代码: using MySql.Data.MySqlClient; public bool Login(string username, string password) { MySqlConnection con = new MySqlConnection(“host=localhost;username…”); MySqlCommand cmd = new MySqlCommand(“SELECT * FROM login WHERE username='” + username + “‘ AND password='” + password + “‘;”); cmd.Connection = con; con.Open(); // This is the line producing […]

投票服务 – C#

有人能帮助我吗? 我正在创建一个连接到SQL数据库的Windows服务,并检查表中的日期并将其与今天的日期进行比较,并更新该数据库中的字段,例如,如果日期等于今天的日期,则该字段将设置为true 。 我遇到的问题是,当我启动服务时,它不会这样做但是当我以正常forms执行它时它完美地工作。 我的代码如下: //System.Timers Timer timer = new Timer(); protected override void OnStart(string[] args) { timer.Elapsed += new ElapsedEventHandler(OnElapsedTime); timer.Interval = 60000; timer.Enabled = true; } private void OnElapsedTime(object source, ElapsedEventArgs e) { int campid = 0; var campRes = new ROS.Process.CampaignServiceController().GetCampainInfo(); foreach (var s in campRes) { campid = s.CampaignId; if (s.CampEndDate.Date […]