我的用的是SQL 2000 server 数据库但是那个数据库用控件的可视化操作可以连接上数据库,但使用代码方式连接就报错误
-----
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
---- 
异常详细信息: System.Data.SqlClient.SqlException: 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
---------
我的代码:
 SqlConnection conn = new SqlConnection("server=;database=lonin1;Integrated Security=SSPI");
            conn.Open();
            SqlCommand cmd = new SqlCommand("select * from year", conn);
            SqlDataReader sdr = cmd.ExecuteReader();
            this.DropDownList1.DataTextField = "yearname";
            this.DropDownList1.DataValueField = "yearID";
            this.DropDownList1.DataSource = sdr;
            this.DropDownList1.DataBind();
            sdr.Close();            SqlCommand cd = new SqlCommand("select * from class  where yearID=" + this.DropDownList1.SelectedValue, conn);
            sdr = cd.ExecuteReader();
            this.DropDownList2.DataTextField = "className";
            this.DropDownList2.DataValueField = "yearID";
            this.DropDownList2.DataSource = sdr;
            this.DropDownList2.DataBind();
            sdr.Close();
            conn.Close();
---------------
我去查了一下那个“数据库连接”里面找到我的数据库服务器的,而且也在里面找到数据库的,但是为什么用代码就不能连接呢?

解决方案 »

  1.   

    试试:
    SqlConnection conn = new SqlConnection("server=(local);database=lonin1;Integrated Security=SSPI"); 
      

  2.   

    SqlConnection conn = new SqlConnection("server=;database=lonin1;Integrated Security=SSPI"); 
    明显有错嘛我去查了一下那个“数据库连接”里面找到我的数据库服务器的,而且也在里面找到数据库的,但是为什么用代码就不能连接呢?你既然知道用这个去连数据库,怎么就不知道把那里面的连接字符串复制出来?
      

  3.   

    这是我封装的一个类,可以实现B/S中的数据层和业务层的关系,以及C/S中的业务层关系
    返回一个DataSet或DataTable就可以实现数据绑定 /// <summary>
        /// SQL Server 2000、SQL Server 2005
        /// </summary>
        public class DBServerSQL
        {
            #region  用属性公开链接数据库的语句
            public static string m_strCon;
            public string ProstrCon
            {
                get { return m_strCon; }
                set { m_strCon = value; }
            }
            #endregion               #region 数据库连接与关闭
            //定义字段
            private static SqlConnection m_conn;//数据库链接        /// <summary>
            /// 实现数据库的连接方法
            /// </summary>
            public static void OpenConn()
            {
                try
                {
                    //打开数据库连接
                    if (m_conn == null)
                    {//为连接则进行数据库链接
                        m_conn = new SqlConnection(m_strCon);
                    }
                    if (m_conn.State == ConnectionState.Closed)
                    {//数据库是否打开
                        m_conn.Open();
                    }
                }
                catch { }
            }
            /// <summary>
            /// 实现数据库的关闭方法
            /// </summary>
            public static void CloseConn()
            {
                try
                {
                    if (m_conn.State == ConnectionState.Open)
                    {//如果数据出于链接状态则关闭数据库
                        m_conn.Close();
                    }
                    //if (m_conn!=null)
                    //{
                    //    m_conn.Close();
                    //}
                }
                catch { }
            }
            #endregion        #region 数据库执行操作
            /// <summary>
            /// 返回ExecuteNonQuery受影响的Int类型
            /// </summary>
            /// <param name="strSQL">执行语句</param>
            /// <returns>返回int型</returns>
            public static int GetExecuteNonQueryInt(string strSQL)
            {
                int nResult = 0;//返回一个int型的值
                try
                {
                    OpenConn();//打开数据库连接
                    SqlCommand comm = new SqlCommand(strSQL, m_conn);//数据库执行SQL server语句
                    nResult = comm.ExecuteNonQuery();//返回受影响的行数
                    CloseConn();//关闭数据库连接
                }
                catch { }
                return nResult;//返回值
            }        /// <summary>
            /// 返回ExecuteNonQuery受影响的Boolean类型
            /// </summary>
            /// <param name="strSQL">执行语句</param>
            /// <returns>返回Boolean型</returns>
            public static Boolean GetExecuteNonQueryBool(string strSQL)
            {
                Boolean BIsOK = false;
                try
                {
                    OpenConn();
                    SqlCommand comm = new SqlCommand(strSQL, m_conn);
                    if (comm.ExecuteNonQuery() > 0)
                    {//说明操作成功
                        BIsOK = true;
                    }
                    CloseConn();
                }
                catch { }
                return BIsOK;
            }        /// <summary>
            /// 返回ExecuteScalar受影响的String类型
            /// </summary>
            /// <param name="strSQL">执行查询语句</param>
            /// <returns>返回String值</returns>
            public static object GetExecuteScalarObject(string strSQL)
            {//object
                object objResult = "";//返回一个string型的值
                try
                {
                    OpenConn();//打开数据库连接
                    SqlCommand comm = new SqlCommand(strSQL, m_conn);//数据库执行SQL server语句
                    objResult = comm.ExecuteScalar();//返回受影响的单个值
                    CloseConn();//关闭数据库连接
                }
                catch { }
                return objResult;//返回值
            }        /// <summary>
            /// 返回ExecuteReader受影响的Boolean类型
            /// </summary>
            /// <param name="strSQL">执行查询语句</param>
            /// <returns>返回Boolean型</returns>
            public static Boolean GetExecuteReaderBool(string strSQL)
            {
                bool BIsReader = false;//返回一个bool型的值
                try
                {
                    OpenConn();//打开数据库连接
                    SqlCommand comm = new SqlCommand(strSQL, m_conn);//数据库执行SQL server语句
                    SqlDataReader reader = comm.ExecuteReader();//从数据库读取信息
                    if (reader.Read())
                    {//如果读到数据
                        BIsReader = true;
                    }
                    CloseConn();//关闭数据库连接               
                }
                catch { }
                return BIsReader;//返回值
            }        /// <summary>
            /// 读取指定表中的信息.
            /// </summary>
            /// <param name="strSQL">SQL语句</param>
            /// <returns>SqlDataReader</returns>
            public static SqlDataReader GetExecuteReader(string strSQL)
            {
                OpenConn();
                SqlCommand comm = new SqlCommand(strSQL, m_conn);
                SqlDataReader reader = comm.ExecuteReader();
                return reader;
            }        /// <summary>
            /// 返回受影响的DataTable
            /// </summary>
            /// <param name="strSQL">执行查询语句</param>
            /// <returns>返回DataTable</returns>
            public static DataTable GetDataTable(string strSQL)
            {
                DataTable dt = new DataTable();//定义一个表
                try
                {
                    OpenConn();//打开数据库
                    SqlDataAdapter da = new SqlDataAdapter(strSQL, m_conn);//创建适配器
                    DataSet ds = new DataSet();//创建数据集
                    da.Fill(ds);//
                    if (ds.Tables.Count > 0)
                    {//判断填充的数据集中是否有表
                        dt = ds.Tables[0];
                    }
                    CloseConn();//关闭数据库
                }
                catch { }
                return dt;
            }        /// <summary>
            /// 返回受影响的DataSet
            /// </summary>
            /// <param name="strSQL">执行查询语句</param>
            /// <returns>返回DataSet</returns>
            public static DataSet GetDataSet(string strSQL)
            {//返回数据集
                DataSet ds = new DataSet();
                try
                {
                    OpenConn();
                    SqlDataAdapter da = new SqlDataAdapter(strSQL, m_conn);//适配器               
                    da.Fill(ds);
                    CloseConn();
                }
                catch { }
                return ds;
            }
            #endregion
      

  4.   

    using System.Data;
    using System.Data.SqlClient;...string strConnection="user id=sa;password=;";
    strConnection+="initial catalog=Northwind;Server=YourSQLServer;";
    strConnection+="Connect Timeout=30";SqlConnection objConnection=new SqlConnection(strConnection);...objConnection.Open();
    objConnection.Close();检查 服务器名 数据库名 用户名密码是否正确 用户是否有权限
      

  5.   

    连接字符串错了server=127.0.0.1  这是本地的连接
      

  6.   

    那个连接程序代码没有错误,我的代码在别的机子都能够运行server=;是默认的本主机,最后那个在VS里面的“数据库连接”中找到的我的数据库,但是它那个代码并不能用来在程序中使用
    我的机子是xp sp3 的系统,好像我们班上所有sp3的机子都不能连接,而sp2好像是能。
      

  7.   

    在 System.Data.SqlClient.SqlException 中第一次偶然出现的“System.Data.dll”类型的异常
    =======================================
    这是在输出窗体中的异常,其他的信息好像都没有错
      

  8.   

    你的sql是用windows认证吗?
    如果不是就错了。
      

  9.   

    SqlConnection conn = new SqlConnection("server=;database=lonin1;Integrated Security=SSPI");
    好像掉了一个点
    server=.;
      

  10.   

    我用的是windows验证身份登录的数据库
      

  11.   

    那个后面可以没有那个点的,server=;可以运行的。
    我现在是在考虑是不是操作系统的问题;
    我用的是XP sp3的操作系统