Tag: c ++

通过C#中调用的存储过程将Bytearray插入SQL

首先,我尝试了一切,并且无法理解为什么它不能正确更新我的varbinary字段。 在1728字节中,只有字节数组中的最后一个字节保存到字段中… 我生成我的字节数组如下: public static byte[] StringToByteArray(String hex) { int NumberChars = hex.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); return bytes; } 我也试过以下一个: public static byte[] ParseHex(string hex) { int offset = hex.StartsWith(“0x”) ? 2 : […]

WebBrowser控件中的InvokeMember(“单击”)

网站显示基于表格的选项供您选择。 HTML是 我想调用字符串“setBank(11,0,1)”的无线电点击。 我如何能? 所有无线电名称都相同,但onclick()参数不同。 在JavaScript中有人这样做了一些代码在这里,但我如何在c#中这样做 我尝试这个但从不工作: if (webBrowser1.DocumentText.IndexOf(“setBank(11,0,1)”, StringComparison.InvariantCultureIgnoreCase) > 1) { webBrowser1.Document.GetElementById(“gatewayIDV”).InvokeMember(“click”); } JavaScript : $(“td.cont”).each(function(index) { var $this = $(this); var gonext = true; if($this.html().search(searchStr) != -1) { $(document).BookingEngine(“setAutomationRunningStatus”, !tabData.automationRunning); console.log(index+”:”+$this.html()+”:”); $this.children(“input[name=’gatewayIDV’]”).click(); gonext = false; } return gonext; });

Null-coalescing运算符为动态对象的属性返回null

我最近在使用Json.NET将JSON解析为动态对象时发现了null-coalescing运算符的问题。 假设这是我的动态对象: string json = “{ \”phones\”: { \”personal\”: null }, \”birthday\”: null }”; dynamic d = JsonConvert.DeserializeObject(json); 如果我尝试使用?? 运算符在d的一个字段上,它返回null: string s = “”; s += (d.phones.personal ?? “default”); Console.WriteLine(s + ” ” + s.Length); //outputs 0 但是,如果我将动态属性分配给字符串,那么它可以正常工作: string ss = d.phones.personal; string s = “”; s += (ss ?? “default”); Console.WriteLine(s + ” ” […]

NamedPipeClientStream无法访问会话0下的NamedPipeServerStream

我有NamedPipeClientStream连接到NamedPipeServerStream。 他们交换了几条消息,然后关闭了NamedPipeClientStream,同时重新创建NamedPipeServerStream并继续侦听客户端管道。 (我无法使用异步服务器管道,所以这是一种狗钉子) 在从普通用户会话启动的客户端流中,客户端 – 服务器交互正常。 但是有一种情况是从Win7和win2008服务器上的会话0启动客户端管道。 发生这种情况时,我在客户端流中出错: “拒绝访问该路径” 问题是什么? 怎么避免呢? 对不起,我无法告诉你有关exception的更多信息。 只有我在日志中有此消息。 我无法从零会话调试我的程序,可以吗? 服务器流代码: PipeSecurity ps = new PipeSecurity(); System.Security.Principal.SecurityIdentifier sid = new System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.BuiltinUsersSid, null); PipeAccessRule par = new PipeAccessRule(sid, PipeAccessRights.ReadWrite, System.Security.AccessControl.AccessControlType.Allow); ps.AddAccessRule(par); pipeClientConnection = new NamedPipeServerStream(General.PIPENAME, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, General.BUFFERSIZE, General.BUFFERSIZE, ps); Console.Write(“Waiting for client connection…”); IAsyncResult result = pipeClientConnection.BeginWaitForConnection(OnPipeConnected, pipeClientConnection); 安全设置可能有问题吗? […]

如何使用SqlDataReader获取浮点值?

在我的数据库中,我将NextStatDistanceTime值作为float。 当“ float time = reader.GetFloat(0); ”行已超出时,它会给出错误 系统无效的转换exception 如何在此代码中从sql命令获取浮点值? 这是我的代码: using (SqlConnection conn = new SqlConnection(@””)) { float totaltime = 0; for (int i = startStationIndex; i < endStationIndex; i++) { SqlCommand command = new SqlCommand("SELECT NextStatDistanceTime FROM [MetroDatabase].[dbo].[MetroStation] WHERE StationIndex = " + i + "", conn); try { conn.Open(); command.ExecuteNonQuery(); using (SqlDataReader reader […]

.NET相当于Java的BufferedReader

我用Java编写代码 public void read() throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(this.socket.getInputStream(), “UTF8”)); String requestURL = null; Vector property = new Vector(); String line; //MORE OF CODE } 如果您需要完整代码,请粘贴。 我想把它改写成C# 但我不知道哪个等同于BufferReader。 我有套接字,我想从套接字InputStream读取(使用UTF8) 谢谢。

LinqToSQL足够强大吗? 是不是更强大但同样流畅的界面易于构建?

在上一个问题中,我询问ORM库是否是次优解决方案并获得了很多很好的反馈。 正如我对这个问题的进一步思考,我得出的结论是LinqToSQL(现在)的主要好处和LinqToEntities(未来)的承诺在于它们能够减少程序代码和SQL之间的“不匹配”。 鉴于LinqToSQL作为一种完整的数据查询语言的局限性,我不倾向于认为它的优势远不止于此,但我想了解其他人的意见。 首先,程序代码和SQL之间的“不匹配”是什么意思? 如果您曾经开发过数据库应用程序,那么您可能已经熟悉(并且厌倦)与数据库交互所需的步骤:设置所有参数,输入SQL命令,然后将预期结果手动转换回变量或代码中使用的实例。 通过使用“流畅”接口,lambda表达式,扩展方法等,LinqToSql使这变得更加容易。最终结果是,很容易将本机C#标量类型推送到数据检索调用中,并且很容易自动生成本机C#类实例。 以MS网站为例: var q = from c in db.Customers where c.City == “London” select c; foreach (var cust in q) Console.WriteLine(“id = {0}, City = {1}”,cust.CustomerID, cust.City); 很酷! 那么问题是什么? 好吧,正如我在顶部链接的文章中指出的那样,存在许多问题。 对我来说最大的一点是,任何能够在SQL方面做到最低限度的人都会立即遇到障碍。 不仅仅是因为SQL的替代品而创建的许多构造都不熟悉甚至是笨拙的(Group By?我们在LinqToSql中谈论丑陋 )。 更大的问题是有许多常见的构造本身不受支持(例如DateDiff)。 充其量,您可以将Linq的“逃出”并将SQL代码提交到Linq调用流中。 那么,简单地在C#(或VB)中嵌入SQL是不是更好,这种方式允许您自由地声明SQL,但是这也可以让您轻松参数嵌入并自动转换为本机类? 例如,如果我们在一个类中只实现六个函数,我们可以编写类似这样的东西(其中qry是我们的查询类的一个实例): var ListOfEnrollees = qry.Command(“Select b.FirstName, b.LastName, b.ID From ClassEnroll a inner join […]

InvalidCastException在C#项目中使用ActiveX时

亲爱的所有交易员和API大师, 先感谢您。 背景: Visual Studio 2010,C#语言,ActiveX OCX API作为项目的参考。 接下来使用API​​提供的方法,如reqAccountUpdate,并使用该事件接收有关帐户更新的信息。 问题: 现在我想要一个特定金融工具的数据,如外汇对:AUD.USD。 一个。 第1步:从TWSLibinheritance类IContract的接口我的代码在这里作为图片,构造函数特定于AUD.USD: 一只忙碌的猫http://sofzh.miximages.com/c%23/iyG7RLuSGxiEl.jpg 正如您所看到的,我已将私有对象_combolLegs更改为私有TWSLib.IComboLeg _comboLegs 湾 第2步:我还将IComboleg和IUpdateCompinheritance到ComboLeg和UpdateComp,并且我没有为它们分配任何值,因为它们与AUD.USD外汇交易无关。 C。 现在我创建一个合同实例并尝试分配所需的所有外汇合约信息并提交我的查询。 一只忙碌的猫http://sofzh.miximages.com/c%23/iXvgbSsp4MbYz.jpg d。 这是一个运行时错误。 请查看图片: 忙碌的猫http://sofzh.miximages.com/c%23/ifFxdfnyvfKF9.jpg 似乎我创建的契约实例不能被api接受为正式的IContract实例。 任何.NET大师的想法?:) 再次提前感谢, 谦虚的学习者。 李文浩 编辑 关于IContract的细节,我得到了所有的信息 一只忙碌的猫http://sofzh.miximages.com/c%23/iAoY8rCvbC22z.jpg

使用LINQ从选择中排除列

我正在使用Entity Framework Code First开发WCF RESTful Web服务。 我有一个表有很多列的Users 。 我这样做是为了得到一个特定的用户: context.Configuration.ProxyCreationEnabled = false; var users = from u in context.Users where u.UserId == userId select u; 在此表上,有一个密码列,我不想返回此列。 如何从该选择中排除密码列?

如何使用C#BackgroundWorker报告本机C ++代码的进度?

在我的Visual Studio解决方案中,我使用C#实现了UI,并且在本机C ++中实现了一些代码。 我使用BackgroundWorker类来实现报告执行长操作的进度。 如何使用BackgroundWorker报告本机C ++代码的进度? 换句话说,如何将C#代码重写为本机C ++并从C#调用获得的C ++代码? 如果无法直接重写下面的代码,那么了解其他等效解决方案可能会很好。 谢谢。 class MyClass { public void Calculate(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; for (int i = 0; i < StepCount; i++) { if (worker.CancellationPending) { e.Cancel = true; break; } // code which handles current iteration here worker.ReportProgress((i + 1) […]