我经常用数据填充数据阅读器并以这种方式填充UI
using (SqlConnection conn = new SqlConnection("myConnString"))
using (SqlCommand comm = new SqlCommand("Select * from employee where salary<5000", conn))
{
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
// here i populate my employee class
}
}
// here i update UI
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找使用DataReader的任务并行库并找到一段代码.它看起来不错,但对我来说目标不是很明确.所以这是我得到的代码.
public IEnumerable<MyDataClass> ReadData()
{
using (SqlConnection conn = new SqlConnection("myConnString"))
using (SqlCommand comm = new SqlCommand("myQuery", conn))
{
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
yield return new MyDataClass(... …Run Code Online (Sandbox Code Playgroud) 假设我在生产pc中运行wcf服务.只需指导我需要添加代码以便为我的服务提供版本.
我需要单独维护服务合同和数据合同的版本吗?只是给我一个创建至少两个版本的wcf服务的小例子.
如果几个客户端正在消耗我的服务,如果我改变任何现有的服务合同方法或添加更多的方法来服务合同那么会发生什么......在那种情况下客户可以调用我的服务或他们需要再次创建代理以获取服务合同中的更改.如果有人用小样本代码讨论我的所有观点以清楚地了解这个想法,那将会非常有帮助.谢谢
我是 WCF 的新手。经常关注 wcf 代码和文章。在查看了许多代码之后,我经常停留在非常基本的事情上,并且没有对以下问题进行详细的讨论。所以这是我的几个基本问题......并寻找示例情况和示例代码的详细讨论。
当应该打开 UseSynchronizationContext=true 或应该选择 UseSynchronizationContext=false 时, UseSynchronizationContext=false 的含义是什么?
当鼠标放在上面时,我正在寻找获取表单名称的技巧.假设我有一个mdi形式和许多sdi形式,如form1,form2,form3和所有sdi形式都打开.假设我有一个在form1上运行的计时器,它将定期运行.我想在鼠标位于任何SDI窗体窗口上时,从计时器刻度事件中显示form1标签上的表单名称.
这样我试着去做.这是代码
private void timer1_Tick(object sender, EventArgs e) {
var handle = WindowFromPoint(Cursor.Position);
if (handle != IntPtr.Zero) {
var ctl = Control.FromHandle(handle);
if (ctl != null) {
label1.Text = ctl.Name;
return;
}
}
label1.Text = "None";
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr WindowFromPoint(Point pos);
Run Code Online (Sandbox Code Playgroud)
上面的代码运行完美,但有一些小故障.当我将鼠标放在MDI表单或Form1上时,表单名称显示在form1上,但是当我将鼠标放在Form2或Form2上时,他们的名字没有显示.我无法理解此代码中的问题.请指导我解决它.
我正在使用PDFsharp lib将图像转换为pdf.我需要设置保证金和页面大小,所以我从这个论坛得到一个技巧来设置页面大小和页边距.从这里我得到了我用过的代码但是两个区域的错误.这是我得到的代码.
page = document.AddPage();
//page.Size = PdfSharp.PageSize.A4;
XSize size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
if(page.Orientation == PageOrientation.Landscape)
{
page.Width = size.Height;
page.Height = size.Width;
}
else
{
page.Width = size.Width;
page.Height = size.Height;
}
// default unit in points 1 inch = 72 points
page.TrimMargins.Top = 5;
page.TrimMargins.Right = 5;
page.TrimMargins.Bottom = 5;
page.TrimMargins.Left = 5;
Run Code Online (Sandbox Code Playgroud)
这条线路出错了
XSize size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
Run Code Online (Sandbox Code Playgroud)
所以我需要改变它
System.Drawing.Size size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
Run Code Online (Sandbox Code Playgroud)
现在我的程序编译,但当我设置边距然后我得到错误称为 PdfSharp不包含TrimMargins的定义
这些下面的行不能编译设置保证金.
pdfPage.TrimMargins.Top = 5;
pdfPage.TrimMargins.Right = 5;
pdfPage.TrimMargins.Bottom = 5;
pdfPage.TrimMargins.Left = 5;
Run Code Online (Sandbox Code Playgroud)
我使用的是pdf …
这是我的代码,显示我的模型中的两个单选按钮.主要的问题是,当我提交表单时,模型性属性变为null,因为我在表单提交之前选择了一个单选按钮.请帮我找出问题所在.
public class StudentModel
{
[Required(ErrorMessage = "First Name Required")] // textboxes will show
[Display(Name = "First Name :")]
[StringLength(5, ErrorMessage = "First Name cannot be longer than 5 characters.")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last Name Required")] // textboxes will show
[Display(Name = "Last Name :")]
[StringLength(5, ErrorMessage = "Last Name cannot be longer than 5 characters.")]
public string LastName { get; set; }
[Required(ErrorMessage = "Sex Required")]
[Display(Name = "Sex :")]
public int …Run Code Online (Sandbox Code Playgroud) 我不是高级开发人员.我只是试图抓住任务库,只是谷歌搜索.我从来没有上过课,SemaphoreSlim所以我想知道它是做什么的.在这里,我提供了一个代码,其中SemaphoreSlim使用async但我不明白.所以我在这里粘贴代码.请帮助我理解下面的代码.
await WorkerMainAsync();
async Task WorkerMainAsync()
{
SemaphoreSlim ss = new SemaphoreSlim(10);
while (true)
{
await ss.WaitAsync();
// you should probably store this task somewhere and then await it
var task = DoPollingThenWorkAsync();
}
}
async Task DoPollingThenWorkAsync(SemaphoreSlim semaphore)
{
var msg = Poll();
if (msg != null)
{
await Task.Delay(3000); // process the I/O-bound job
}
// this assumes you don't have to worry about exceptions
// otherwise consider try-finally
semaphore.Release();
} …Run Code Online (Sandbox Code Playgroud) 我用VS2010开发了我的Winform应用程序,并在Win7操作系统上运行,但我想在所有主要的Windows操作系统上测试或运行它,如XP,Vista,Windows 7和Windows 8以及Windows 2008/2012服务器等.
我想到的很简单,我可以在多台PC上安装所有操作系统并在所有PC上测试我的应用程序,但这个过程非常耗时.
所以我想在现实生活中了解一家优秀的软件公司如何在发布之前在多个win操作系统上测试他们的应用程序.是否存在可以帮助我或使工作更轻松的工具?
我曾经从 GIT win 应用程序连接到 GIt。现在,当我尝试连接时,它要求输入企业 URL。我真的不知道什么是企业网址。请告诉我为企业 URL 输入什么。这是我的屏幕截图。

我正在阅读有关价值提供者和Model Binder之间有什么区别的文章。
我知道Model Binder基本上会获取传入数据并构建对象。假设我要发送学生数据,然后模型装订器从发布到服务器时获取传入的学生数据并构建学生对象。
但是仍然不了解MVC中“价值提供者”的工作是什么。
因此,请通过简单的示例说明价值提供者完成的工作和模型绑定程序所完成的工作?
建立Person对象时,DefaultModelBinder将从RouteData中获取Id值,并从JSON中获取Age,FirstName和LastName值。之后,它将执行验证,而不必知道各种值来自不同的来源。
当我发布ID,名称,年龄等信息时,为什么模型绑定器仅从路线数据中选择ID,而从JSON中选择其余数据。模型联编程序应该从RouteData中选择所有值,或者从JSON中选择所有值。
mvc中存在多少种不同类型的值提供程序?
c# ×5
wcf ×2
winforms ×2
asp.net-mvc ×1
async-await ×1
asynchronous ×1
github ×1
pdfsharp ×1
semaphore ×1
winapi ×1
windows ×1