‘壹’ 如何解决水晶报表10的部署问题
这个让我找了很久,网上都说安装包在C:\Program Files (x86)\Microsoft Visual Studio 8\Crystal Reports\CRRedist\X64\CRRedist2005_X64.msi
,可我我在服务器上完整安装了VS2005后一直找不到,后来才发现我安装VS2005的安装目录不是在C盘,所以安装包无法在C盘找到.
2.WIN2003 64位下安装虚拟打印机
64位下可支持的虚拟打印机很少,找了很久,才找到微软的Microsoft XPS Document Writer,下载地址
http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=B8DCFFDD-E3A5-44CC-8021-7649FD37FFEE
为什么要安装虚拟打印机?就是为了解决水晶报表Web打印(ActiveX模式打印),自定义纸张的问题.在水晶报表的模板上选择打印机和(打印机和传真-服务器属性-创建新格式 中设置的)自定义尺寸格式就OK了.
3.解决windows2003 64位下asp.net无法操作ACCESS、EXCEL等问题
这个是WIN2003 X64本身支持的原因,只能通过降级到32位来解决.
1、先卸载64位的asp.web 2.0
命令:C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe nu
2、把IIS切换为32位模式运行
命令:Cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3、重新注册32位asp.net 2.0
命令:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -r
4.安装sqlSERVER 2005 64位版本的问题
建议先安装sqlserver 2005 64位版本后再安装VS2005或者VS2010等开发环境.我遇到几台服务器,在安装VS2008或VS2010时选择了安装SQL Server Express,由于他们自带的是SQL Server 2008的服务器组件,导致后面安装的SQL Server 2005 无法安装和工作.即使安装Visual Studio 也不要去选择安装SQL Server Express.
64位的SQL Server 2005 安装文件比较难找,最后在EMule上找了个,下了2个备用,结果1个安装失败,还是X86和X64合集的那个版本给力.
如发现在windows server 2003 x64安装水晶报表10出错的话,不妨考虑蓝色动力 GHOST WIN7 SP1 X64 装机旗舰版 http://www.xp933.com/download/35.html
http://www.xp933.com/tech/1173.html
希望可以帮你解决问题,我用的是finereport,方便多了,你可以试试
‘贰’ aspnet和vue的区别
aspnet和vue的区别如下。
1、aspnet是一个新的开源和跨平台的框架,用于构建如Web应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。
2、vue是一套用于构建用户界面的渐进式JavaScript框架,与其余大型框架不同的是,Vue被设计为可以自底向上逐层应用,Vue的核心库只关注视图层,方便与第三方库或既有项目整合。
‘叁’ ASP.NET 水晶报表错位
打印机纸张和你原本的打印机纸张不一致。设置一样就好了。
‘肆’ 怎样用aspnet
asp.net是一种使嵌入网页中的脚本可
由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。 指 Active Server
Pages(动态服务器页面) ,运行于 IIS(Internet Information Server
服务,是Windows开发的Web服务器)之中的程序 。
ASP .NET开发的首选语言是C#及VB .NET,同时也支持多种语言的开发
如:C#、VB .NET、 F#、 Powershell 、Java/J#、Python、Ruby、Delphi 、JScript
‘伍’ aspnet中40w行数据怎么导出Excel
试过以下方法:
1 此方法根本不能导出40w行
public static void ToExcel(System.Web.UI.Control ctl, string FileName){ HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Charset = "utf-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); HttpContext.Current.Response.ContentType = "application/ms-excel"; HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=xxxx.xls"); ctl.Page.EnableViewState = false; System.IO.StringWriter tw = new System.IO.StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); ctl.RenderControl(hw); HttpContext.Current.Response.Write(tw.ToString()); HttpContext.Current.Response.End();}
2 此方法可以很快导出40w行,占内存也很少(80m),导出的文件60m左右,但是基本没法打开
Stream str = Response.OutputStream;StreamWriter sw = new StreamWriter(str);Response.ContentType = "application/vnd.ms-excel";Response.AppendHeader("Content-Disposition", "attachment;filename=xxxx.xls");string tmp1 = "<td";string tmp2 = "</td";string tmp3 = "<tr";string tmp4 = "</tr";if (reader.HasRows){ int dccount = reader.FieldCount; sw.WriteLine("<table border=/"1/""); sw.Write(tmp3); for (int i = 0; i < dccount; i++) { sw.Write(tmp1); sw.Write(reader.GetName(i)); sw.Write(tmp2); } sw.WriteLine(tmp4); while (reader.Read()) { sw.Write(tmp3); for (int k = 0; k < dccount; k++) { sw.Write(tmp1); sw.Write(reader.GetValue(k).ToString()); sw.Write(tmp2); } sw.WriteLine(tmp4); } sw.WriteLine("</table");}reader.Close();sw.Flush();sw.Close();str.Close();
Response.ContentType = "application/vnd.ms-excel";string filename = name;if (Request.UserAgent.ToLower().IndexOf("msie") != -1) filename = System.Web.HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8);Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xlsx");string cmdstr = Session["search_sql"].ToString();SqlParameter[] paras = (SqlParameter[])Session["search_para"];SqlDataReader reader = SqlHelper.ExecuteReader(CommandType.Text, cmdstr, paras);DataTable datatable = reader.GetSchemaTable();int dccount = datatable.Rows.Count;int i;UInt32 rowindex = 1;MemoryStream ms = new MemoryStream();SpreadsheetDocument spreadSheet = SpreadsheetDocument.Create(ms, SpreadsheetDocumentType.Workbook);WorkbookPart workbookpart = spreadSheet.AddWorkbookPart();workbookpart.Workbook = new Workbook();WorksheetPart worksheetpart = workbookpart.AddNewPart<WorksheetPart();worksheetpart.Worksheet = new Worksheet(new SheetData());Sheets sheets = spreadSheet.WorkbookPart.Workbook.AppendChild<Sheets(new Sheets());Sheet sheet = new Sheet() { Id = spreadSheet.WorkbookPart.GetIdOfPart(worksheetpart), SheetId = 1, Name = name };sheets.Append(sheet);SheetData sheetdata = worksheetpart.Worksheet.GetFirstChild<SheetData();Row headerRow = new Row() { RowIndex = rowindex };Cell cell;Hashtable columnname = new Hashtable();char[] tmp = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ").ToCharArray();for (i = 0; i < dccount; i++){ string tmp1 = ""; int tmp2 = i; int tmp3; do { tmp3 = tmp2 % 26; tmp1 = tmp[tmp3] + tmp1; tmp2 = (tmp2 - tmp3) / 26 - 1; } while (tmp2 -1); columnname.Add(i, tmp1);}EnumValue<CellValues celldatatype = new EnumValue<CellValues(CellValues.String); for (i = 0; i < dccount; i++){ cell = new Cell() { CellReference = columnname[i].ToString() + rowindex.ToString(), CellValue = new CellValue(datatable.Rows[i]["ColumnName"].ToString()), DataType = celldatatype }; headerRow.InsertAt(cell, i);}sheetdata.Append(headerRow);rowindex += 1;if (reader.HasRows){ while (reader.Read()) { Row row = new Row() { RowIndex = rowindex }; for (i = 0; i < dccount; i++) { cell = new Cell() { CellReference = columnname[i].ToString() + rowindex.ToString(), CellValue = new CellValue(reader.GetValue(i).ToString()), DataType = celldatatype }; row.InsertAt(cell, i); } rowindex += 1; sheetdata.Append(row); }}reader.Close();workbookpart.Workbook.Save();spreadSheet.Close();ms.Position = 0;byte[] buffer = new byte[4096];int k = 0;long length = 0;while (length < ms.Length){ k = ms.Read(buffer, 0, 4096); Response.OutputStream.Write(buffer, 0, k); length += k;};ms.Dispose();Response.Flush();Response.End();不知道大家有没有好的解决方案,或者是优化上面代码的方法.
‘陆’ 编写ASP.net website程序(cookies)
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class test1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["username"]!=null )
{
TextBox1.Visible = false;
TextBox2.Visible = false;
Button1.Visible = false;
int vinum;
if (Request.Cookies["vinum"] = null)
{
vinum = 0;
}
else
{
vinum = Convert.ToInt32(Request.Cookies["vinum"].Value);
vinum += 1;
}
Response.Cookies["vinum"].Value =vinum.ToString() ;
Response.Write("欢迎你的到来!" + Request.Cookies["username"].Value + "!你是第" + vinum + "次访问此页!");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Cookies["username"].Value = TextBox1.Text;
}
}
‘柒’ win2003在iis打开网页报表,报错COM 类工厂中 CLSID 为 {11BD5260-15B6-412D-80DB-12BB60B8FE50} 的组件时
不懂呀
‘捌’ 怎么在MVC4中使用水晶报表
报表不显示的原因是水晶报表的功能没有在站点中,因此网页中的确有水晶报表的标签描述(javascript),但是没有能显示。
解决方法:
This means you're running the ASP in a different site from the Default Site in IIS. When you install Crystal Reports it puts a bunch of files in C:\Inetpub\wwwroot\aspnet_client that are necessary for report viewer to work.
Solution: Copy the crystal files beneath C:\Inetpub\wwwroot\aspnet_client to your website root folder.
To get the right path, go to IIS Manager > Sites > [your website] > right-click > Manage Web Site > Advanced Settings... > Physical Path. The actual files you need are beneath wwwroot\aspnet_client\system_web\[framework version]\crystalreportviewers13 but it's usually simplest to just the entire aspnet_client folder from the default webroot to your site's webroot.
‘玖’ 如何让服务器支持水晶报表
1,
要在服务器安装CRRedist2008_X64.msiCRRedist2008_X64_CHS.msiCRRedist2008_x86.msiCRREdist2008_x86_chs.msi这几个文件,因为我们的服务器是Win2008,所以我选择了CRRedist2008_X64.msiCRRedist2008_X64_CHS.msi这两个文件进行安装。
这个是必须安装的,否则页面会报以下错误:
未能加载文件或程序集“CrystalDecisions.ReportAppServer.CommLayer,Version=10.2.3600.0,Culture=neutral,PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。
2,
文件发布的时候,web.config下要有以下几个引用:
<add assembly="CrystalDecisions.Data.AdoDotNetInterop, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisions.Shared, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisions.VSDesigner, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
<add assembly="CrystalDecisions.Windows.Forms, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/
并且bin目录下必须有这几个引用,如果没有,把这几个文件拷贝进来(在C盘里找就可以);
3,
要把C:\ProgramFiles\CommonFiles\businessobjects\2.7\Managed下所有的文件都到服务器网站的bin目录下,这一步也是必要的,否则页面会报以下错误:
注意:这一步我没有在服务器中找到,所以我没有做;
未能加载文件或程序集“CrystalDecisions.Web,Version=10.2.3600.0,Culture=neutral,PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。系统找不到指定的文件。
4,
如果水晶报表工具条无法显示,图片变成一个一个红叉,那我们还需要把本机C:\Inetpub\wwwroot下的aspnet_client目录到服务器网站根目录下。
以上功课做完了,按理说水晶报表应该可以正常运行了(
我做到这已经可以了
),但是打开页面又跳出来一个错误:
文件UNKNOWN.RPT内出错:无法将请求提交给后台处理。
在网上搜了一下,应该是因为
“出现这个错误的主要原因是水晶报表引擎没有权限生成报表。查看了一个服务器的权限设置,发现C盘的根目录Users组没有权限,只要把Users组设置为对C盘有写入的权限问题就解决了。如果认为User组对整个C盘有写入权限不安全,也可以把Temp目录设为有写入权限,问题也可以解决。
初步估计水晶报表引擎可能要在Temp目录里生成一些临时的交换文件,所以需要C盘Temp目录的操作权限。”
‘拾’ 怎样用ASP.NET web应用管理将用户创建在指定数据库
name="yourProvider" type="Samples.AspNet.Membership.yourMembershipProvider" connectionStringName="yourServices" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" writeExceptionsToEventLog="true"/> 方法2、也可以将Membership和RoleProvider相关的表结构导入到你自己的数据库中,可以使用aspnet_regsql工具来注册数据库,然后在web.config的connectionStrings中添加下面配置: