ASP.NET中WEB.config连接网络服务器SQL 2005数据库,代码怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET中WEB.config连接网络服务器SQL 2005数据库,代码怎么写?相关的知识,希望对你有一定的参考价值。

<add name="电影ConnectionString" connectionString="Data Source=hongdingjin-PC\SQLEXPRESS;Initial Catalog=电影;Integrated Security=True" providerName="System.Data.SqlClient" />
以上是原来在本地的服务器连接代码。
现在要连接网络服务器上的,数据库有以下信息,怎么写啊?
服务器IP:
数据库名:
数据库用户名:
数据库密码:

  ASP.NET程序中的web.config中的连接字符串为: <add name="Conn" connectionString="server=.;uid=sa;pwd=seeyon;database=Dsystem;" />,name是指的在程序写好的链接数据库的方法名,connectionString中就是我们与数据库连接配置参数:server表示数据库服务器的名字和IP地址,uid是指数据库的用户名,pwd是数据库登录密码,database是指数据库的名字。

  ASP.NET程序与sql server 2005数据库连接不单是需要在配置文件中配置好数据库名、用户名、密码、IP地址。还需要在程序中也要写好与数据库的连接方法,然后在web.config中来调用才能正常连接,这样程序在使用过程中才不会报与数据库连接错误。

  1、ASP.NET程序与sql server 2005数据库连接方法代码:(注:与数据库连接的方法有很多,但是都是大同小异)

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data.Sql;
  namespace DLL

    public class DBHelper
    
        public static string conn = ConfigurationManager.ConnectionStrings["Conn"].ToString();
        //public static string conn =ConfigurationManager.AppSettings["SqlConnString"].ToString();
        static SqlConnection con = null;
        /// <summary>
        /// 判断数据库连接状态
        /// </summary>
        /// <returns></returns>
        public static SqlConnection getConnection()
        
            try
            
                if (con == null)
                
                    con = new SqlConnection(conn);
                
                if (con.State == ConnectionState.Broken)
                
                    con.Close();
                    con.Open();
                
                if (con.State == ConnectionState.Closed)
                
                    con.Open();
                
                
            
            catch (Exception ex)
            
                
                throw ex;
            
            return con;
          
          public static SqlCommand NewMethod(string sql, SqlParameter[] par)
        
            SqlCommand com = new SqlCommand(sql, getConnection());
            if (par != null)
            
                foreach (SqlParameter parameter in par)
                
                    if (parameter.Value == null)
                    
                        parameter.Value = DBNull.Value;
                    
                    com.Parameters.Add(parameter);
                    
                
                
            
            return com;
        
        public static DataSet Dataset(string sql, SqlParameter[] par, string tableName)
        
            DataSet set = new DataSet();
            SqlCommand comm = NewMethod(sql,par);
            if(tableName==null || tableName=="")
            
                tableName = "tableName";
            
            SqlDataAdapter dapter = new SqlDataAdapter(sql, getConnection());
            dapter.Fill(set,tableName);
            return set;
        
        public static DataTable Table(string sql, SqlParameter[] par, string tableName)
        
            DataTable table = new DataTable();
            try
            
                table = Dataset(sql, par, tableName).Tables[0];
                return table;
            
            catch (Exception ex)
            
                
                throw ex;
            
            
        
        public static SqlDataReader Reader(string sql,SqlParameter[] par)
        
            SqlDataReader red = null;
            SqlCommand comm = NewMethod(sql,par);
            try
            
                red = comm.ExecuteReader();
            
            catch (Exception ex)
            
                red.Close();
                con.Close();
                throw ex;
            
            return red;
        
        public static int Execut(string sql, SqlParameter[] par)
        
            int num = 0;
            SqlCommand com = NewMethod(sql, par);
            try
            
                num = com.ExecuteNonQuery();
            
            catch (Exception ex)
            
                  num = 0;
            
            con.Close();
            return num;
        
        
    
    

  2、web.config配置文件的连接代码为:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    注意: 除了手动编辑此文件外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
    “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表可以在
    machine.config.comments 中找到,该文件通常位于
      \\Windows\\Microsoft.Net\\Framework\\vx.x\\Config 中 
-->
<configuration>
 <appSettings>
  </appSettings>
  <!-- 数据库连接字符串-->
  <connectionStrings>
    <add name="Conn" connectionString="server=.;uid=sa;pwd=seeyon;database=Dsystem;" />
  </connectionStrings>
 <system.web>
  <!--
            设置 compilation debug="true" 可将调试符号
            插入已编译的页面中。
            但由于这会影响性能,因此请仅在开发过程中将此值
            设置为 true。
        -->
  <compilation debug="true">
  </compilation>
  <!--
          通过 <authentication> 节可以配置
          安全身份验证模式,ASP.NET 
          使用该模式来识别来访用户身份。 
        -->
  <authentication mode="Windows" />
  <!--
           如果在执行请求的过程中出现未处理的错误,
           则通过 <customErrors> 节
           可以配置相应的处理步骤。具体而言,
           开发人员通过该节可配置要显示的 html 错误页,
           以代替错误堆栈跟踪。
             <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
             <error statusCode="403" redirect="NoAccess.htm" />
             <error statusCode="404" redirect="FileNotFound.htm" />
           </customErrors>
        -->
 </system.web>
    <system.webServer>
        <defaultDocument>
            <files>
                <add value="Login.aspx" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>
参考技术A 连接是一样的,首先你要知道IP 和网上数据库的名 用户名及密码,重要的是网络上的都有动态端口,或实例名,你需要管空间商要,连接方法是IP处写例:192.106.13.10,333(333是端口号) 参考技术B Data Source=服务器IP地址,端口号;Database=数据库名;user id=用户名;password=密码
例如:Data Source=192.168.1.2,1423;Database=test;user id=sa;password=123456
其中端口号(1423)是可选的,看服务器的设置。
无需端口号则为:Data Source=192.168.1.2;Database=test;user id=sa;password=123456追问

按你的方法连接也不行啊,出现错误 :
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: TCP 提供程序, error: 0 - 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)

追答

是局域网内的机子?确定服务器主机数据库配置允许远程连接?

追问

我的电脑是局域网内的,校园网,但是数据库服务器是外网的,182.18.22.140的

追答

在命令行下输入telnet 182.18.22.140 1433试试看能不能连通先
你的操作系统是XP的吗?
打开SQL Server 配置管理器看下TCP/IP协议开启了没有,默认端口1433,是否已启用
打开SQL Server 外围应用配置器->服务和连接的外围应用配置器,SQLEXPRESS的远程连接勾选本地连接和远程连接->勾选同时使用TCP/IP和named pipes
还不行你把防火墙关了再试试吧!再不行好好去研究。。。呵呵

本回答被提问者和网友采纳

asp.net web.config的设置问题

“/”应用程序中的服务器错误。
运行时错误说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。

详细信息: 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。

<!-- Web.Config 配置文件 -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>

注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。

<!-- Web.Config 配置文件 -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>

----------------------------------------------------------------------------------------------
由于有一个虚拟空间就把项目挂到外网在试了一下啊,但是会出现以上的错误。这个错误该怎么解决?还有web.config该怎样配置?完全不懂啊!!!在本地调试是无错的。请不要在网上复制答案过来

程序出错,不关web.config的事。这里面的配置只是说要不要把错误显示出来。
还是你自己的程序问题。服务器上面的环境跟本地的环境可能会有差别。造成错误。
多往这方面找答案。good luck
参考技术A 你就按它说的改一下就可以了哦。。
你把这个文件““web.config”在网页文件里找出来,用软件打开,把“<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>”这一行,改成“<customErrors mode="Off"/>”这样就可以了哦,然后保存后,再上传到空间里覆盖原来的那个““web.config”文件,就完事了哦!!

以上是关于ASP.NET中WEB.config连接网络服务器SQL 2005数据库,代码怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

.NET / LINQ-SQL / ASP.NET 中的连接字符串地狱

ASP.NET MVC 在“发布”上应用 web.config 转换

asp.net web.Config 配置httpHandlers无效 求解,在线等!

在非 ASP.Net 应用程序中加密连接字符串

ASP.NET MVC web.config(多个)问题

ASP.net Paraccel 连接字符串