我开始在网络编程领域沾沾自喜,我最近在讲师教程中遇到了一个相当古老的样本(或者我告诉过).
我们在大学的计算机上试过它,但它不起作用,所以讲师认为它是由Windows 7或大学计算机系统设置的安全设置.
渴望找到原因我决定在家里自己的电脑上运行相同的代码,毫不奇怪它没有用.
解决方案中有两个项目,一个用作客户端,另一个用作服务器.一旦服务器和客户端彼此连接,客户端就会向服务器发送一个简单的字符串,该字符串将打印到控制台.在此之后,关闭适当的连接并正常退出应用程序.
应用程序工作,直到服务器确认它已连接到客户端,但它会引发一个异常(捕获和处理)与文本:
无法从传输连接读取数据:远程主机强制关闭现有连接. - (System.IO.IOException)
现在,我刚刚开始使用C#进行网络编程,我不确定在哪里看,我的讲师说他会在下周的讲座中找到解决问题的原因和解决方案,但我想采取一些措施并找出自己.
我已经添加了Client.cs和Server.cs类以防它们有用,调试器建议原因在于Server.cs中的第27行,对streamReader.Readline()的调用;
注意:这绝不是家庭作业,我只是好奇为什么它不起作用.称之为学习经历=]
Client.cs
using System;
using System.Net.Sockets;
using System.IO;
namespace NetworkProgrammingTutorial1Client
{
class Client
{
static void Main(string[] args)
{
TcpClient myclient;
try
{
// Create a TcpClient to talk to the local host.
myclient = new TcpClient("localhost", 1234);
}
catch
{
Console.WriteLine("Failed to connect to the server.");
return;
}
// get a Network stream from the server
NetworkStream networkStream = myclient.GetStream();
StreamWriter streamWriter = new StreamWriter(networkStream);
streamWriter.WriteLine("Have a …Run Code Online (Sandbox Code Playgroud) 我正在SQL Server 2008上开发一个小的存储过程.我对SQL查询知之甚少,但足以实现简单的任务.但是我想出了一个我无法解决的问题.在我开始解释我的问题之前,请原谅我,如果我拼写SQL查询字错了,因为我不是英语母语人士.
我有4个字段(CSV表示):
ID, NAME, VALUES, ANSWER
25, Tom , 2400 , 0
25, Tom , 600 , 0
25, Tom , 500 , 1
25, Tom , 300 , 1
27, Jerry, 100, 0
27, Jerry, 20, 1
27, Jerry, 60, 1
27, Jerry, 2000, 0
Run Code Online (Sandbox Code Playgroud)
我想要做的是按照它的选择进行分组,ID并NAME在名为positive when ANSWER = 1和的字段中汇总它的值negative when ANSWER = 0.
ID, NAME, SUM, NEGATIVE, POSITIVE
25, Tom, 3000, 800
27, Jerry, 2100, 80
Run Code Online (Sandbox Code Playgroud)
我猜我的问题已被问过几次,但我无法找到任何关于它的信息,可能是因为我使用的是错误的条款.无论如何,如果有人可以提供帮助,那将节省我很多时间.
我有一个DataTable,我想检查三列中的值是否唯一.如果不是,则应使用值组合的第一个外观的行号填充最后一列.
例如,这个表:
ID Name LastName Age Flag
-------------------------------------
1 Bart Simpson 10 -
2 Lisa Simpson 8 -
3 Bart Simpson 10 -
4 Ned Flanders 40 -
5 Bart Simpson 10 -
Run Code Online (Sandbox Code Playgroud)
应该导致这个结果:
Line Name LastName Age Flag
-------------------------------------
1 Bart Simpson 10 -
2 Lisa Simpson 8 -
3 Bart Simpson 10 1
4 Ned Flanders 40 -
5 Bart Simpson 10 1
Run Code Online (Sandbox Code Playgroud)
我通过使用两个嵌套for循环迭代DataTable 并比较这些值来解决这个问题.虽然这适用于少量数据,但当DataTable包含大量行时,它会变得非常慢.
我的问题是:这个问题的最佳/最快解决方案是什么,关于数据量可以在100到20000行之间变化?
有没有办法用LINQ做到这一点?(我对它不太熟悉,但我想学习!)
我们在msdn中读到我们使用DynamicObject Class"添加新的动态属性"我编写了一个以下程序
public class DemoDynamicObject : DynamicObject
{
}
class Program
{
public static void Main()
{
dynamic dd = new DemoDynamicObject();
dd.FirstName = "abc";
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个程序时,它会给出运行时错误:'DemoDynamicObject'不包含'FirstName'的定义,如果我们通过使用DynamicObject Class添加动态属性那么为什么它可以给出这个错误任何人都可以告诉我原因和解决方案?
伙计们两者之间有什么区别?
如果我设置<table runat=server>我也可以在服务器端使用它.
两者之间有什么不同吗?
感谢名单
我使用 SQL Server 来存储有关每个用户的一些信息。有些项目(例如用户名/密码)很少会更改,但其他项目每隔几秒就会更改一次(例如经度/纬度)。
我预计这个系统将在工作日的大部分时间里被数百个用户使用。因此,每个用户每天对该表进行 10,000 次更新。
将不断变化的信息和大部分静态信息存储在同一行中是否有缺点?我应该将静态信息保留在一个表中,并将更改信息保留在另一表中吗?
我正试图将一些货币对齐到右边:
double number1 = 150.45;
double number2 = 1400.95;
//Output kr. 150,45
Console.WriteLine("{0:c2}", number1);
//Output kr. 1.400,95
Console.WriteLine("{0:c2}", number2);
Run Code Online (Sandbox Code Playgroud)
但我希望我的输出看起来像这样.
//Output kr. 150.45
//Output kr. 1.400,95
Run Code Online (Sandbox Code Playgroud)
数字是否与右边对齐?
我对文件,流和不同的代码页都很陌生.看到这是我的问题:
我得到了文本文件,其中一些是使用代码页Windows-1252创建的,有些仍然是IBM850,有时它们是UTF8.当我导入它们时,我的数据库会显示ä,ö,ü,ß的各种符号,因为我用错误的代码页读取它们.只有当我使用正确的代码页导入它们时,一切正常.
这是我认为可能是一个好方法:
使用代码页X将ä,ö,ü,ß转换为字节数组
例如:
byte[] myAeKl = Encoding.GetEncoding("IBM850").GetBytes("ä");
byte[] myAeGr = Encoding.GetEncoding("IBM850").GetBytes("Ä");
Run Code Online (Sandbox Code Playgroud)
浏览文本文件并将每个字母字节数组与上面的字节数组进行比较.如果发现使用该代码页,否则尝试另一个代码页.
这是我不明白的:我如何比较文本文件中字母的字节与我要查找的字母的字节数组.例如:
if (Textfile.Letter == myAeKl || Textfile.Letter == myAeGr)
...
Run Code Online (Sandbox Code Playgroud)
有没有其他方法来获得正确的代码页?我是否对解决方案有正确的帮助?
我正在制作房地产数据库,看来我做错了什么,因为我的设计有几个循环。可以吗还是我需要重新设计所有数据库模式?
这是我当前的架构:

我似乎在.Net 3.5中的各种XML实现之间发现了一些不一致的东西,而我正在努力找出名义上正确的.
问题实际上很容易重现:
使用包含'\ t'字符的文本元素创建一个简单的xml文档,并为其指定一个包含'\ t'字符的属性:
var xmlDoc = new XmlDocument { PreserveWhitespace = false, };
xmlDoc.LoadXml("<test><text attrib=\"Tab'\t'space' '\">Tab'\t'space' '</text></test>");
xmlDoc.Save(@"d:\TabTest.xml");
Run Code Online (Sandbox Code Playgroud)
注意:这意味着XmlDocument本身对属性值中的'\ t'字符非常满意.
使用新的XmlTextReader加载文档:
var rawFile = XmlReader.Create(@"D:\TabTest.xml");
var rawDoc = new XmlDocument();
rawDoc.Load(rawFile);
Run Code Online (Sandbox Code Playgroud)使用XmlReader.Create加载文档:
var rawFile2 = new XmlTextReader(@"D:\TabTest.xml");
var rawDoc2 = new XmlDocument();
rawDoc2.Load(rawFile2);
Run Code Online (Sandbox Code Playgroud)比较调试器中的文档:
(rawDoc).InnerXml "<test><text attrib=\"Tab' 'space' '\">Tab'\t'space' '</text></test>" string
(rawDoc2).InnerXml "<test><text attrib=\"Tab'\t'space' '\">Tab'\t'space' '</text></test>" string
Run Code Online (Sandbox Code Playgroud)使用新的XmlTextReader读取的文档是我所期望的,文本值和属性值中的'\ t'都符合预期.但是,如果查看XmlReader.Create读取的文档,您会发现属性值中的'\ t'字符已转换为' '字符.
什么...... !! :-)
经过一段时间的Google搜索,我发现我可以将'\ t'编码为' ' - 如果我在示例XML中使用此而不是'\ t',则两个阅读器都按预期工作.
现在Altova XmlSpy和其他各种XML阅读器似乎对属性值中的'\ t'字符非常满意,我的问题是处理这个问题的正确方法是什么?
我应该编写带有'\ t'字符的XML文件,这些字符在XmlReader.Create等属性值中编码,或者是其他XML工具是否正确,'\ t'字符是否有效且XmlReader.Create是否已损坏? …
c# ×5
.net ×4
sql ×2
sql-server ×2
asp.net ×1
byte ×1
c#-4.0 ×1
datatable ×1
encoding ×1
filestream ×1
networking ×1
performance ×1
vb.net ×1
xml ×1