2018-12-25工作记录 空白行===水晶报表
C# 多行文本去掉空白行,空行和重复行
string[] strArray=str.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
strArray = strArray.GroupBy(p => p).Select(p => p.Key).ToArray();
水晶报表:一般先建立一个数据集,【数据集可以从解决方案中添加项,添加数据集或者可以在数据选项中--添加新数据源进行添加】,然后建立报表,在报表的右上角选择数据源【要用到报表向导】,这样就可以简单的显示了。
//绑定开始 String sql="" sql = "select * from 表名" SqlConnection con=new Sqlconnection("数据连接字符串"); SqlDataApter da=new SqlDataApter(sql,con); DataSet ds=new DataSet(); CrystalReport1 cry=new CrystalReport1 (); con.Open() da.Fill(ds, "dgv") cry.SetDataSource(ds.Tables("dgv")) CrystalReportViewer1.ReportSource = cry //绑定结束 //如果要实现打印功能,还需修改一下,以下是打印的功能:(这个打印功能不是CrystalReportViewer1里面自带的): <pre class="brush:csharp">String sql=""; sql = "select * from Employee"; SqlClient.SqlConnection con=null; SqlClient.SqlDataAdapter da=null; DataSet ds=new DataSet(); con = New SqlClient.SqlConnection("Data Source=PC-201005072138;Initial Catalog=Company;Persist Security Info=True;User ID=sa;Password=ddddd"); con.Open(); da = New SqlClient.SqlDataAdapter(sql, con) da.Fill(ds, "main") //打印功能 PrintDocument printDt = New PrintDocument();//打印文档对象 ReportDocument rd= New ReportDocument();//报表对象 rd.Load(Application.StartupPath + "\CrystalReport1.rpt"); //MessageBox.Show(Application.StartupPath + "\CrystalReport1.rpt"); rd.SetDatabaseLogon("sa", "ddddd"); rd.SetDataSource(ds); String strDefaultPrinter= printDt.PrinterSettings.PrinterName; rd.PrintOptions.PrinterName = strDefaultPrinter; rd.PrintToPrinter(1, True, 0, 0); //打印结束 </pre>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)