每当触发我的C#程序中使用的消息框时,我的计算机都会发出非常恼人的哔声.如何使用C#代码禁用此蜂鸣声.
我使用的代码非常简单.
MessageBox.show("text");
Run Code Online (Sandbox Code Playgroud) 我使用Reporting Services创建了一个报告作为C#应用程序的一部分,我找不到我以前在其他环境中看到的一些功能.我相信MS Access和Crystal报告都有一个名为"Keep Together"的选项,这样您就可以在一个页面上保留特定的数据分组,而不是将信息分成两页.
当我的报表在C#应用程序中本地呈现并使用.net报表查看器查看时,如何使用2005 Reporting Services执行此操作.基本上,我想在一个页面上保留特定年份的所有记录.我正在使用Visual Studio 2008.
年份是列之一,一年的行数始终小于页面.我的报告只使用一个表,按年度分列最里面的分组,然后按客户名称进行另一个外部分组.
目前我可以在报告中使用两年的数据,但是,如果数据从第一年开始一半,那么我得到以下结果:
例:
第一页:2004年的1/2,因为数据在04年中途开始
整个2005年
2006年上半年
第2页:2006年下半年
我宁愿做的是将2006年全部推到第二页.
我目前正在使用表格来处理报告中的所有数据.表级别有一个保持在一起的选项,但我需要一个在组级别.在这种情况下按年分组.
我们非常感谢您提供的任何帮助.
我想遍历xml中的每个元素和属性,并在不知道元素名称的情况下获取名称值.我甚至有一本关于使用C#的linq到xml的书,它只告诉我如何在我已经知道元素的名称时查询以获取元素的值.
下面的代码只给出了最高级别的元素信息.我还需要达到所有降序元素.
XElement reportElements = null;
reportElements = XElement.Load(filePathName.ToString());
foreach (XElement xe in reportElements.Elements())
{
MessageBox.Show(xe.ToString());
}
Run Code Online (Sandbox Code Playgroud) 我使用VS 2008编写了一个C#程序,它使用内置的Report Viewer并在本地处理报告.
在查看报表时,我想用新的rdlc文件替换当前的rdlc文件并刷新报表而不关闭包含报表查看器的报表.
我已经检查过以确保正确生成文件.如果我使用报表查看器关闭表单并将其打开备份,则会显示新的文件信息.我只是无法弄清楚如何在不关闭父表单的情况下重新加载报表查看器.
以下是我已经尝试过的.我没有收到任何错误消息.该报告似乎更新了,但它实际上只是告诉我我已经在看什么.未加载新的RDLC文件.
private void BtnRefreshRpt_Click(object sender, EventArgs e)
{
try
{
GenerateNewRDLC GN = new GenerateNewRDLC();
GN.generateFile(); /*this part definitely works*/
SqlConnection conReport = new SqlConnection (ConfigurationManager.ConnectionStrings["Connection String Info"].ConnectionString);
SqlCommand cmdReport = new SqlCommand();
SqlDataReader drReport;
DataSet dsReport = new AdvEdgeDataSet();
conReport.Open();
cmdReport.CommandType = CommandType.Text;
cmdReport.Connection = conReport;
cmdReport.CommandText = strRptCriteria;
drReport = cmdReport.ExecuteReader();
dsReport.Tables[0].Load(drReport);
drReport.Close();
conReport.Close();
reportViewer1.LocalReport.ReportPath = strRptResource.ToString();
ReportDataSource rds = new ReportDataSource();
rds.Name = strRptDataSource;
rds.Value = dsReport.Tables[0];
reportViewer1.LocalReport.DataSources.Add(rds);
reportViewer1.RefreshReport();
reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);
//this.reportViewer1.RefreshReport();
} …Run Code Online (Sandbox Code Playgroud) 当我尝试使用C#取一小部分的第N个根时,我得到一个错误的数字.
例如,当我尝试采用1.07的第三个根时,我得到1,这显然不是真的.
这是我用来获取第三个根的确切代码.
MessageBox.Show(Math.Pow(1.07,(1/3)).toString());
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我猜这是一个浮点运算问题,但我不知道如何处理它.
我创建了一个C#.net应用程序,该应用程序使用SQL Server 2008数据库表中的日期。有没有一种方法可以我临时存储数据,以便我的程序不必重复对同一组信息进行服务器调用?我知道如何提取所需的信息并创建一个临时数据集,但是,只有特定的方法或类才能访问它,然后消失。在程序关闭之前,我需要通用的结果。
这是到目前为止,我不确定下一步该怎么做:
SqlConnection ReportConnect = new SqlConnection(ConnectionString);
String reportQuery = @"SELECT DISTINCT DATE FROM dbo.myTable ORDER BY DATE DESC";
ReportConnect.Open();
SqlCommand cmd = ReportConnect.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = ReportConnect;
cmd.CommandText = reportQuery.ToString();
SqlDataReader rdr = cmd.ExecuteReader();
while(rdr.Read()) {
//I can access the results here
}
//how do I add this data for the life of the program instance to my current
//dataset. Let's say the dataset is named "activeDataset"
Run Code Online (Sandbox Code Playgroud) 如何在以下情况下设置命令超时?为了澄清,我已经在连接字符串中设置了连接超时,但是我还需要设置命令超时,因为我希望查询能够在需要时运行5分钟,但是它会在不到一个时间内超时一会儿.
String reportQuery = @" complicated query returning many rows ";
SqlConnection ReportConnect = new SqlConnection(ConnectionString);
ReportConnect.Open();
DataSet tempDataset = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(reportQuery, ReportConnect);
da.Fill(tempDataset);
Run Code Online (Sandbox Code Playgroud) c# ×7
.net ×6
ado.net ×2
sql-server ×2
linq-to-xml ×1
math ×1
rdlc ×1
reportviewer ×1
sql ×1
winforms ×1
xml ×1