小编Jim*_*nts的帖子

如何在VB.NET中使用MSHTML?

在问题#56107的回答中,Erlend提供了这个示例c#代码:

using mshtml;
...
object[] oPageText = { html };
HTMLDocument doc = new HTMLDocumentClass();
IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
doc2.write(oPageText);
Run Code Online (Sandbox Code Playgroud)

我想在VB.NET中使用mshtml,但IDE无法识别:

Imports mshtml
Run Code Online (Sandbox Code Playgroud)

在VB.NET中使用MSHTML需要采取哪些额外步骤?

vb.net mshtml

5
推荐指数
1
解决办法
3万
查看次数

提交更改后,DataGridView行仍然是脏的

DataGridView.IsCurrentRowDirtytrue在我提交数据库更改后仍然存在.我想将它设置为当它失去焦点时它false不会触发RowValidating.

我有一个DataGridView必然的BindingList<T>.我处理CellEndEdit事件并保存对数据库的更改.保存这些更改之后我想DataGridView.IsCurrentRowDirty设置true,因为该行中的所有单元格都是最新的; 然而,它被设定为false.

这会给我带来问题,因为当行失去焦点时它会触发RowValidating,我会处理并验证所有三个单元格.所以即使所有单元格都有效且没有一个是脏的,它仍然会验证它们.那是浪费.

这是我的一个例子:

void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    // Ignore cell if it's not dirty
    if (dataGridView.isCurrentCellDirty)
        return;

    // Validate current cell.
}

void dataGridView_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
{
    // Ignore Row if it's not dirty
    if (!dataGridView.IsCurrentRowDirty)  
        return;

    // Validate all cells in the current row.
}

void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    // Validate all …
Run Code Online (Sandbox Code Playgroud)

c# validation datagridview winforms

5
推荐指数
1
解决办法
9161
查看次数

我们有多个针对单个数据库运行的应用程序服务器。如何确保队列表中的每一行只处理一次?

我们有大约 7 个运行 .NET Windows 服务的应用程序服务器,它们对单个 sql server 2005 队列表执行 ping 操作,并以固定时间间隔获取固定数量的记录进行处理。要处理的记录量和提取之间的时间量都是可配置的,最初设置为 100 秒和 30 秒。

目前,我的队列表有一个 int status 列,可以是“就绪、处理、完成、错误”。获取记录的过程有一个sql事务,事务内有以下代码:

1)将x条记录提取到临时表中,其中状态为“Ready”。select 使用了 Holdlock 提示

2) 将队列表中这些记录的状态更新为“正在处理”

.NET 服务执行一些处理,每个记录可能需要几秒钟甚至几分钟的时间。每个记录调用另一个过程,它只是将状态更新为“完成”。更新过程没有事务,因为我在这里依靠隐式事务作为更新子句的一部分。

我不知道这方面的流量例外情况,但估计每天会低于 10k 条记录。

这是处理这种情况的最佳方法吗?如果是这样,我是否遗漏了任何细节,例如这里或那里的提示?

谢谢!戴夫

t-sql sql-server locking

5
推荐指数
1
解决办法
191
查看次数

我可以使用Contains方法的嵌入式lambda吗?

我想过滤一个列表 FindAll

如果我写:

.FindAll(
    p => p.Field == Value && 
    p.otherObjList.Contains(otherObj));
Run Code Online (Sandbox Code Playgroud)

没关系,但是如果我写的话

.FindAll(
    p => p.Field == Value && 
    p.otherObjList.Contains(
        q => q.Field1 == Value1 && 
        q.Field2 == Value2));
Run Code Online (Sandbox Code Playgroud)

我得到C#语法错误消息:未知方法FindAll(?)的... otherObjList

我无法准确定义otherObj,因为我只知道两个字段Field1和Field2的值.

我做错了什么?在这种情况下我该怎么办?

c# linq lambda contains

5
推荐指数
1
解决办法
1378
查看次数

如何在代码中使用Visual Studio中创建的数据连接?

是否可以访问代码中添加到项目中的数据连接?

我知道可以访问使用可视化设计器创建的DataSet,但我只想访问连接.

编辑:

可以通过工具>连接到数据库将数据连接添加到VS2008中的项目.

我想在我的代码中访问此连接作为对象,这样我就不必自己指定连接字符串.

.net settings database-connection visual-studio-2008

4
推荐指数
1
解决办法
8916
查看次数

如何从URL获取图像到pictureBox?(Windows Mobile)

使用Compact Framework时从URL获取图像的最佳方法是什么以及如何?

我用Google搜索,但找不到任何合适的答案.

我找到的东西就是这个(用它做了一个函数):

    public Bitmap getImageFromUrl()
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(this.SImageUrl);
        request.Timeout = 5000; // 5 seconds in milliseconds
        request.ReadWriteTimeout = 20000; // allow up to 20 seconds to elapse
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream ms = response.GetResponseStream();
        Bitmap imageFromUrl;
        using (MemoryStream ms2 = new MemoryStream())
        {
            int bytes = 0;
            byte[] temp = new byte[4096];
            while ((bytes = ms.Read(temp, 0, temp.Length)) != 0)
                ms2.Write(temp, 0, bytes);
            imageFromUrl = new Bitmap(ms2);
        }

        return imageFromUrl;

    }
Run Code Online (Sandbox Code Playgroud)

但它不会在pictureBox中显示任何图像.有任何想法吗?

谢谢我提前

c# compact-framework

4
推荐指数
1
解决办法
4176
查看次数

如何使用C#从Excel工作表生成图表

我正在编写代码,使用C#(使用Office.InterOp.Excel)将一些数据写入Excel文件.现在我必须从工作表中的10个列中选择两列,并在两者之间绘制图形.这必须仅使用C#完成.

有任何想法吗?我在网上找到的大多数例子都是固定数据值.如果数据值未事先知道怎么办?

c# excel charts graph

4
推荐指数
1
解决办法
1万
查看次数

如何加速从C#创建excel Excel电子表格?

我目前正在使用带有C#COM Interop的Excel 2007编写大约200个Excel电子表格.

不幸的是,我需要大约4分钟来写这200张纸 - 每张纸有大约1000行,8-10列.

我怎样才能加快速度?

我的代码基本上是这样的:

var xlApp = new Excel.Application();
xlApp.DisplayAlerts=false;
foreach (x in z) {
   var wb = xlApp.Workbooks.add(XLWBATemplae.xlWBATWorksheet);
   var ws = (Worksheet)wb.Worksheets[1];
   //fill data into sheet
   wb.SaveAs(fileName);
   wbClose();
}
Run Code Online (Sandbox Code Playgroud)

澄清:我现在正在单独填写每个单元格

我会尝试一些你的建议,然后接受最好的解决方案.

c# excel performance com-interop

4
推荐指数
1
解决办法
7310
查看次数

如何在C#中的特定标签上创建工具提示点?

在我的应用程序中,我想使用工具提示指向标签以引起用户注意:

toolTip.IsBalloon = true;
toolTip.Show("message", label1);
Run Code Online (Sandbox Code Playgroud)

问题是气球没有指向指定的标签.我该怎么办?

c# tooltip balloon-tip

4
推荐指数
1
解决办法
3705
查看次数

如何使用Moq来满足单元测试的MEF导入依赖性?

这是我的界面

public interface IWork
{
    string GetIdentifierForItem(Information information);
}
Run Code Online (Sandbox Code Playgroud)

和我的班级

public class A : IWork
{
[ImportMany]
public IEnumerable<Lazy<IWindowType, IWindowTypeInfo>> WindowTypes { get; set; }

public string GetIdentifierForItem(Information information)
{
    string identifier = null;
    string name = information.TargetName;

    // Iterating through the Windowtypes 
    // searching the 'Name' and then return its ID  
    foreach (var windowType in WindowTypes)
    {
        if (name == windowType.Metadata.Name)
        {
            identifier = windowType.Metadata.UniqueID;
            break;
        }
    }
    return identifier;
}
}
Run Code Online (Sandbox Code Playgroud)

问题:我想对方法进行单元测试GetIdentifierForItem

以下是我试图解决的问题 -

(1)创建一个模拟Lazy并设置它需要在属性获取时返回的值

var …

.net c# unit-testing mef moq

4
推荐指数
1
解决办法
3905
查看次数