MSSQL2008 R2 数据库展开报错:值不能为空 参数名:viewInfo

这篇博客记录了在Windows Server 2008上使用SQL Server 2008 R2时遇到的错误及解决方法。错误包括数据库报错和打开库文件时报的值不能为空异常。解决方案包括创建特定的文件夹,删除或修改特定文件如RegSrvr.xml,以及在指定路径下建立名为'1'或'2'的文件夹。通过这些步骤,作者成功解决了问题。
摘要由CSDN通过智能技术生成

HR服务器的数据库报了一个不常见的错误,记录下来分享给大伙,如果遇到同样的问题,希望可以得到解决。
服务器环境:windows server 2008(64Bit)
数据库版本:SQL server 2008 R2
错误提示:值不能为空。参数名: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Expl;如下图:

这里写图片描述

在路径:C:\Users\你的用户名\AppData\Local\Temp\”文件夹下建好命名为 2 的文件夹,如果已经有 2 则看清楚是否是文件而不是文件夹,删掉文件改为文件夹;
如果是找不到\User这个文件夹,那么就找C:\Documents and Settings\Administrator\Local Settings\Temp这个目录,建好 2 文件夹之后重启数据库即可,如果还不行,就需要重新启动服务器。
重新登录OK

 

 打开数据库时报错,提示应用程序组件中发生了无法处理的异常。如果单击“继续”,应用程序将忽略此错误并尝试继续。

 

针对此类问题的解决办法是:将路径C:\Documentsand Settings\Administrator\Application Data\microsoft\Microsoft SQLServer\100\Tools\Shell下的文件RegSrvr.xml文件删除(或者搜索文件RegSrvr.xml)。然后就跟着这个做(先把要删除的文件备份,万一不行,最起码也可以保证不会丢失内部文件),最终这个问题还是解决了,成功打开了SQL Server。
 

但是又出现了其他问题,打开库文件时,提示:值不能为空,如下图:

 

解决办法:

      找到C:\Users\你的用户名\AppData\Local\Temp\"文件夹,然后建一个文件名为“2”的空文件夹。但是在此次路劲下已经有了名为2的文件夹,并且还存在文件。就先按照这个方法做,把原来的文件备份之后删除,新建一个名为2的文件夹,结果还是不行。接着搜索资料,又存在提示建名为“1”的文件夹,幸运的是此次尝试之后,成功。

好的,以下是你要求的JavaWeb应用程序的设计: 1. CustomServletContextListener.java ``` import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class CustomServletContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { ServletContext servletContext = sce.getServletContext(); // 向ServletContext对象中存储三个属性 servletContext.setAttribute("sno", "你的学号"); servletContext.setAttribute("name", "你的姓"); servletContext.setAttribute("gender", "你的性别"); } @Override public void contextDestroyed(ServletContextEvent sce) { // do nothing } } ``` 2. SelfInfoServlet.java ``` import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletContext; public class SelfInfoServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取ServletContext对象 ServletContext servletContext = request.getServletContext(); // 获取三个属性 String sno = (String) servletContext.getAttribute("sno"); String name = (String) servletContext.getAttribute("name"); String gender = (String) servletContext.getAttribute("gender"); // 拼接字符串 String selfInfo = "学号:" + sno + ",姓:" + name + ",性别:" + gender; // 存储到request对象中 request.setAttribute("selfInfo", selfInfo); // 请求转发到viewInfo.jsp页面 request.getRequestDispatcher("/viewInfo.jsp").forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` 3. visit.jsp ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Visit Page</title> </head> <body> <a href="${pageContext.request.contextPath}/info">访问SelfInfoServlet</a> </body> </html> ``` 4. viewInfo.jsp ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>View Info</title> </head> <body> ${selfInfo} </body> </html> ``` 以上是你要求的JavaWeb应用程序的设计,你可以将代码复制到相应的Java文件中,并在web.xml文件中配置CustomServletContextListener和SelfInfoServlet的映射关系,最后部署到Tomcat服务器中运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值