我试图使用ExportToHttpResponse
如下导出Crystal ReportDocument :
report.ExportToHttpResponse(exportOptions, HttpContext.Current.Response, true, "test");
Run Code Online (Sandbox Code Playgroud)
当我第一次尝试运行时,我收到了一个System.Threading.ThreadAbortException
.阅读有关如何,这是一个已知的误差后ExportToHttpResponse
在这个问题,我想实现像这样一个try/catch块包裹语句的建议的解决方法:
try
{
report.ExportToHttpResponse(expOptions, HttpContext.Current.Response, true, "test");
}
catch (System.Threading.ThreadAbortException e)
{
}
Run Code Online (Sandbox Code Playgroud)
据我了解,这应该捕获并忽略错误,然后继续.但是,我仍然得到System.Threading.ThreadAbortException
了catch语句的结束括号.我的问题是为什么即使我显然正在捕获它仍然会收到异常,我怎么能去修复它以便忽略异常?
尝试运行我的代码时,收到以下错误:
CS0234:名称空间"System.Data"中不存在类型或命名空间名称"OracleClient"(您是否缺少程序集引用?)
我已经包含对System.Data.dll
和的引用System.Data.OracleClient.dll
,但我仍然收到此错误.
错误是由using System.Data.OracleClient
我的命名空间声明中的行引起的.
c# reference oracleclient system.data system.data.oracleclient
这是我在C#中一次又一次遇到的问题,但还没有找到一般解决方案.在C++/STL中,可以使用迭代器在O(n)时间内更新映射中的所有值,而无需使用键来访问每个元素.有没有办法获得与任何C#集合类似的行为,如SortedList,SortedDictionary?
我可以做点什么
foreach (int key in list.Keys)
{
list[key] *= 3;
}
Run Code Online (Sandbox Code Playgroud)
但是这需要O(n*log(n))作为搜索每个元素使用key取log(n).
只是为了提出一个想法,我正在寻找以下内容:
SortedList<int, double> list = new SortedList<int,double>();
// Add few values fist
// E.g. first try ...
IList<double> values = list.Values;
for (int i = 0; i < values.Count; i++)
{
values[i] *= 3;
}
// E.g. second try
foreach (KeyValuePair<int, double> kv in list)
{
kv.Value *= 3;
}
Run Code Online (Sandbox Code Playgroud)
由于List已经排序,因此应该可以遍历它同时更新值(而不是键).从实现的角度来看,它看起来并不存在问题,但由于某种原因,似乎没有提供功能.
此外,这不是一个简单的情况,因为可以使用相同的方法从已知位置迭代到该范围内的另一个修改值.
有没有办法在C#中使用.NET中的任何键控集合而不使用第三方库?
谢谢
占道
我正在使用Access 2013更新.mdb格式Access数据库中的表.我想向现有表添加一个新字段,比如说一个Description字段.
我可以使用以下查询添加文本列
ALTER TABLE TestTable ADD Description TEXT(255);
Run Code Online (Sandbox Code Playgroud)
或者我可以使用
ALTER TABLE TestTable ADD Description varchar(255);
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,并向TestTable添加一个名为Description的列,该列限制为255个字符.如果我在设计视图中打开表,我可以看到描述的类型被列为"短文本".但是,有一个选项可以让字段为"Long Text"类型,据我所知,它没有字符限制.从设计视图中手动更改类型很容易,但我想知道是否可以通过查询执行此操作.
我尝试在原始查询中增加字符数,就像这样
ALTER TABLE TestTable ADD Description TEXT(300);
Run Code Online (Sandbox Code Playgroud)
但后来我收到错误"字段大小'描述'太长了."
我想知道的是我可以通过查询添加列,使其字符限制大于255吗?此查询作为自动运行的宏的一部分运行,因此我不想手动更改它.到目前为止,我尝试通过Google搜索解决方案的尝试都是空洞的.
这应该很容易,但我无法弄清楚如何.有没有办法找出安装的JavaFX版本.我并不是指以编程方式通过System.getProperty("javafx.runtime.version")
,虽然安装了JavaFX,但它会在我的计算机上返回一个空字符串.
我宁愿java -version
在控制台上有类似的东西,但为了获得JavaFX版本.
或者,只要知道是否安装了JavaFX就足够了.我只是有一些客户无法运行我的swing/javaFX应用程序,并想告诉他们检查是否安装了JavaFX.
所以我在代码的第6行中对if语句的逻辑进行了很多考虑.但我希望从更有经验的开发人员那里得到一些反馈.你们认为我的代码过于复杂吗?如果是这样,你们怎么会写得更简洁?
我有一个包含以下数据的表:
create table tempdata(account varchar2(20)not null,bookid number(10),seqno number(20) not null,book_date date, book1 number(10),
book2 number(10),book3 number(10))
insert into tempdata values('123',101,09,add_months((sysdate),-1),100,120,130);
insert into tempdata values('123',101,10,sysdate),70,60,100)
select * from tempdata;
ACCOUNT BOOKID SEQNO BOOK_DATE BOOK1 BOOK2 BOOK3
123 101 9 9/22/2015 10:05:28 AM 100 120 130
123 101 10 10/22/2015 10:01:42 AM 70 60 100
Run Code Online (Sandbox Code Playgroud)
我需要输出类似下面的内容,以便创建另一个临时表,其中包含最新的书籍详细信息,包括上一个日期和最新日期:
ACCOUNT BOOKID SEQNO Previous_DATE Latest_date BOOK1 BOOK2 BOOK3
123 101 10 9/22/2015 10:05:28 AM 10/22/2015 10:01:42 AM 70 60 100
Run Code Online (Sandbox Code Playgroud) 我们有 10 个左右的 Web 服务器,它们共享一些 MySQL 服务器。由于一些网络问题,连接错误过多,其中一个网络服务器被阻止。我通过刷新主机解决了这个问题,但花了很短的时间才注意到这一点。
我想设置一个 Nagios/Icinga 检查来获取被阻止的主机列表 - 但我不知道如何做到这一点,因为 MySQL 似乎没有选择它(并且没有可以检查的 host_cache 表)。我可以为每个网络服务器添加一个检查来尝试连接,但如果可能的话,我宁愿检查集中 - 如果没有,那么我将不得不这样做。
I would like to make a button play a B-flat scale when clicked. What am I doing wrong?
<!DOCTYPE html>
<html>
<head>
<script>
function PlaySound() {
alert("hello");
var bflat = new audio();
bflat.src = "bflat.mp3";
document.getElementById(bflat);
bflat.Play();
}
</script>
</head>
<body>
<audio id="bflat"> </audio>
<button onclick="PlaySound"> B Flat </button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有这个Excel电子表格,我想使用ODBC Excel驱动程序从php页面查询.以下表为例:
tblExample
----------------------------------
| Column1 | Column 2 | Column 3. |
----------------------------------
| 1 | Mike | 12345 |
| 2 | Sally | 67890 |
| 3 | Mitchel | 12345 |
| 1 | James | 67890 |
----------------------------------
Run Code Online (Sandbox Code Playgroud)
现在让我们说我想用LIKE语句查询每一列.第一个我可以查询没有问题.
SELECT * FROM tblExample WHERE Column1 LIKE '%1%';
Run Code Online (Sandbox Code Playgroud)
第二个也很容易查询,但[]
由于空间我必须使用括号.
SELECT * FROM tblExample WHERE [Column 2] LIKE '%Mi%';
Run Code Online (Sandbox Code Playgroud)
然而,第三栏给了我麻烦.当我尝试使用以下内容查询时:
SELECT * FROM tblExample WHERE [Column 3.] LIKE '%12345%';
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
37000: [Microsoft][ODBC Excel Driver] '' …
Run Code Online (Sandbox Code Playgroud) 我试图想出一个表达式来检查给定的整数,如果从右到左的第三个数字是5.我到目前为止管理的是:
string input = "5";
if (Regex.IsMatch(input[2].ToString(), "[5]"))
{
System.Console.WriteLine("yes");
}
else
System.Console.WriteLine("no");
Run Code Online (Sandbox Code Playgroud)
遇到了2个问题:
首先,它从左到右计数,而不是从右到左,第二个,当数字小于3位时,就像在这种情况下返回超出范围的例外.
如何从两个不同的范围生成随机数?
例如:10-20和50-60之间的一个数字.
我知道如何从一个范围(1-13)生成一个随机数:
Random rnd = new Random();
int num = rnd.Next(1, 13);
Run Code Online (Sandbox Code Playgroud) 我试图读取一个二进制文件,它是以某种模式编写的,例如:string, string, byte
我上网浏览了一下,发现了这段代码:
while (br.BaseStream.Position<br.BaseStream.Length)
{
br.ReadString();
br.ReadString();
br.ReadByte();
}
Run Code Online (Sandbox Code Playgroud)
尽管这是简单的代码,但我无法理解底层流(BaseStream)的含义是什么?有人可以给我一个简短的解释吗?