小编Tho*_*mas的帖子

尝试转换SQL int时无效的强制转换异常 - > c#int?

嗨,我目前正在使用以下内容来获取SQL Server数据库的列

public IDataReader myReader()
{
    DbCommand = new SqlCommand("Select * from Mydatabase");
    SqlConnection con = new SqlConnection(connectionstr);
    con.Open();
    DbCommand.Connection = con
    return command.ExecuteReader(CommandBehavior.closeConnection);
}

IDataReader reader = myReader();
while (reader.Read())
{
    int? a = (int?)reader["myIntColumn"];
}
Run Code Online (Sandbox Code Playgroud)

在其他位置(对于其他表),代码工作正常,并且对于此表,它工作正常,直到我来到数据库中的int字段.然后我得到System.InvalidCastException(在其他表中我没有得到那个问题).

有什么我做错了吗?或者我必须做才能使这项工作?(有问题的int值在DB中为NULL)

c# sql sql-server null dbnull

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

是否有任何选项可以限制每次下载的下载带宽?

我正在使用客户端服务器架构从中央服务器下载文件。由于客户端计算机的限制,我在它们上使用 Framework 3.5,在服务器上使用 4.6。

在服务器上我正在执行以下操作:

public IHttpActionResult MyControllerMedhod()
{
    return MySecondMethod();
}

private HttpResponseMessage MySecondMethod()
{
     HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);

     FileStream stream = new FileStream("c:\temp\tester.dat", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);


     result.Content = new StreamContent(stream);
     result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
     result.Content.Headers.ContentDisposition.FileName = "c:\temp\tester.dat";
     result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
     result.Content.Headers.ContentLength = stream.Length;

return result;
}
Run Code Online (Sandbox Code Playgroud)

在我正在使用的客户端计算机上:

webClient.DownloadFile("http://127.0.0.1/Download/MyControllerMethod", "c:\temp\test.dat");
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我完全无法控制使用多少带宽。对于某些客户端来说,如果使用较少的带宽来下载文件将是有利的。

现在我的问题是:有什么方法可以限制每次下载使用的带宽吗?(从客户端或服务器端)。

备注:下载的数据文件大小可以达到 800 或 900 MB。

c# asp.net download

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

文件上传隐藏文本字段在extJS中

我正在使用extJS4作为我的GUI,因此也显示文件上传对话框.最后我想只有一个按钮,当我点击它时会显示文件上传对话框,当我选择它时,它会自动上传文件.

对于自动"提交",我知道我必须为文件上传对话框的onChange事件编写处理程序.因此,这不是问题.但有没有办法禁用文本字段而不必诉诸CSS?(当我选择要上传的文件名称被写入文本字段....我想要消除文本字段或至少使其不可见).

html javascript extjs extjs4

2
推荐指数
1
解决办法
2925
查看次数

C#将上下文菜单项添加到Windows资源管理器中的所有文件类型

我当前正在编写一个应用程序,需要修改Windows资源管理器的上下文菜单,以便可以在应用程序内调用一种方法,以在Windows资源管理器中看到的所有文件/文件夹上使用该方法。

由于关于如何为特定文件类型添加上下文菜单的大量关于stackoverflow的文章(以及教程),我已经知道通常通过将应用程序分配给这些文件类型的注册表项的正确部分来完成此操作。

因为我不想将自己仅限于特定的文件类型,所以我的问题是:是否有任何方法可以将此新的上下文菜单项分配给所有文件类型(除了通过。开头的每个注册表项并在那里将应用程序分配给它们) ?

c# registry windows-explorer

2
推荐指数
1
解决办法
4113
查看次数

级联线程查杀

对于时间/日期驱动的线程应用程序,我正在使用创建new Thread()的线程(并且线程都被放入列表中),其中调用一个运行未定义时间的方法(可以是1秒甚至是一整天) .在此方法中,可以创建新的(子)线程(也可以new Thread()).

现在,当应用程序的线程部分结束时(手动或因为程序结束),我将浏览我创建的线程列表并手动结束.

现在据我所知,创建子线程的线程的结束(因此创建第二个线程的方法的线程)并不意味着子线程的结束.所以我的问题是:是否有任何好的方法来管理它,线程杀死会对其子级进行级联(或者我误解了线程在那里的工作方式?).

编辑:有问题:这里提到的所有线程都是后台线程(因此后台进程创建一个子进程进程,该进程将在父进程结束时结束).

c# multithreading winforms

2
推荐指数
1
解决办法
276
查看次数