C# asp.net-中的用户代码未处理sqlexception
我在stackoverflow上搜索了很多关于此错误的信息,但这些问题与我的错误主题相去甚远 我正在用“Tuts+”教程编写CMS,每次我试图解决它时,我都会得到这段代码。。。 错误: 其他信息:与网络相关或特定于实例的错误 建立与SQL Server的连接时发生。服务器已关闭 找不到或无法访问。验证实例名称是否正确 正确,并且SQL Server已配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40-无法打开 与SQL Server的连接) 我尝试重新启动sql服务并关闭防火墙,然后。。。但是 以及守则:C# asp.net-中的用户代码未处理sqlexception,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我在stackoverflow上搜索了很多关于此错误的信息,但这些问题与我的错误主题相去甚远 我正在用“Tuts+”教程编写CMS,每次我试图解决它时,我都会得到这段代码。。。 错误: 其他信息:与网络相关或特定于实例的错误 建立与SQL Server的连接时发生。服务器已关闭 找不到或无法访问。验证实例名称是否正确 正确,并且SQL Server已配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40-无法打开 与SQL Server的连接) 我尝试重新启动sql服务并关闭防火墙,然后
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text.RegularExpressions;
使用System.Web;
使用WebMatrix.Data;
///
///PostHandler的摘要说明
///
公共类PostHandler:IHttpHandler
{
公共PostHandler()
{
//
//TODO:在此处添加构造函数逻辑
//
}
公共布尔可重用
{
获取{return false;}
}
公共void ProcessRequest(HttpContext上下文)
{
var title=context.Request.Form[“postTitle”];
var content=context.Request.Form[“postContent”];
var slug=CreateSlug(标题);
使用(var db=Database.Open(“DefaultConnection”))
{
var sql=“SELECT*FROM Posts,其中Slug=@0”;
var result=db.QuerySingle(sql,slug);
如果(结果!=null){
抛出新的HttpException(409,“SLUG已在使用中!”);
}
sql=“插入帖子(标题、内容、作者、Slug”+
“值(@0、@1、@2、@3)”;
执行(sql,标题,内容,1,slug);
}
}
私有静态字符串CreateSlug(字符串标题)
{
title=title.ToLowerInvariant()。替换(“,”-”;
title=Regex.Replace(title,@“[^0-9a-z-]”,string.Empty);
返回标题;
}
}
我在网上发现了这个错误:
var result=db.QuerySingle(sql,slug);
转到控制面板/搜索服务找到sql Server(XXX)服务,并检查它是否正在运行。如果它没有运行,则启动它并尝试再次登录SSMS
阅读更多图片插图此错误表示您的连接字符串错误。它存储在web.config中。有关如何组合连接字符串的信息,请参阅。对于故障连接字符串的故障排除,没有通用方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using WebMatrix.Data;
/// <summary>
/// Summary description for PostHandler
/// </summary>
public class PostHandler : IHttpHandler
{
public PostHandler()
{
//
// TODO: Add constructor logic here
//
}
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
var title = context.Request.Form["postTitle"];
var content = context.Request.Form["postContent"];
var slug = CreateSlug(title);
using (var db = Database.Open("DefaultConnection"))
{
var sql = "SELECT * FROM Posts WHERE Slug = @0";
var result = db.QuerySingle(sql, slug);
if (result != null) {
throw new HttpException(409, "SLUG IS ALREADY IN USE!");
}
sql = "INSERT INTO Posts (Title, Content, AuthorId, Slug" +
"VALUES (@0, @1, @2, @3)";
db.Execute(sql, title, content, 1, slug);
}
}
private static string CreateSlug(String title)
{
title = title.ToLowerInvariant().Replace(" ", "-");
title = Regex.Replace(title, @"[^0-9a-z-]", string.Empty);
return title;
}
}