无法将我的网页连接到数据库

时间:2011-05-02 19:17:06

标签: c# sql connection-string

更新:我错过了我应该使用MySql.Data.MySqlClient引用和MySqlConnection,因为我一直在尝试连接mysql服务器。 Java误导我,我可以轻松连接两行。抱歉花时间**


我正在尝试将我的网页连接到数据库。我可以使用java轻松连接以生成表,但我无法连接C#/ Asp。

输出屏幕上的错误是:

  

System.Data.dll中出现'System.Data.SqlClient.SqlException'类型的第一次机会异常

代码:

try {
    con = new SqlConnection("Data Source = urlhere ;" +
                            "uid = u_yucel;" +
                           "pwd = *****; " +
                            "database = u_yucel; " +
                            "connection timeout = 2");
    cmd.CommandText = "select * from person";
    con.Open();
    cmd.Connection = con;

    DropDownList1.DataSource = cmd.ExecuteReader();
    DropDownList1.DataTextField = "name";
    DropDownList1.DataBind();
}
catch (Exception ex)
{
    Response.Write(ex.Message);
    Console.WriteLine("123");
    Response.Write(ex.StackTrace);
}

错误消息:

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开到SQL Server的连接)在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()处的System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection)处System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo,SqlInternalConnectionTds connHandler,Boolean ignoreSniOpenTimeout,Int64 timerExpire,Boolean encrypt,Boolean trustServerCert,Boolean integratedSecurity)at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo,String newPassword,Boolean ignoreSniOpenTimeout) System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject,System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo,String newPassword,Boolean redirectedUserInstance,SqlConnection owningObject,SqlConnectionString connectionOptions,TimeoutTimer timeout)中的,TimeoutTimer超时,SqlConnection owningObject) TimeoutTim在System.Data.SqlClient.SqlConnectionFactory的System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity标识,SqlConnectionString connectionOptions,Object providerInfo,String newPassword,SqlConnection owningObject,Boolean redirectedUserInstance)中的er timeout,SqlConnectionString connectionOptions,String newPassword,Boolean redirectedUserInstance) .CreateConnection(DbConnectionOptions选项,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningConnection)在System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)处的System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection,DbConnectionPool池,DbConnectionOptions选项)处。 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection)上System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)的System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)在System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)的System.Data.SqlClient.SqlConnection.Open()处于E:\ VisualStudioProjects \ DataDeneme1 \ DataDeneme1 \ carSelect中的DataDeneme1.carSelect.rebind()处拥有连接) .aspx.cs:第38行

3 个答案:

答案 0 :(得分:5)

您的连接字符串无效。使用标准的.net提供程序连接字符串。或指定提供者。请参见此处的示例

http://www.connectionstrings.com/sql-server-2008

http://www.connectionstrings.com/sql-server-2005

答案 1 :(得分:4)

  

找不到服务器或无法访问服务器。

这可能是由多种原因造成的,所有这些原因都无法从我们的最终诊断出来。

您需要启动Profiler(如果您没有完整版本的Sql Server,可能必须抓住express version)并观察连接。

你会发现

a)没有可见的连接尝试
这意味着您的连接字符串无效(请参阅Vadim对良好链接重新连接字符串的答案),或者sql server是not watching for connections over TCP/IP

或者,这可能意味着

b)出于安全原因拒绝连接
这意味着你必须configure security on the server

答案 2 :(得分:1)

您无法连接到您的数据库。您需要查看连接字符串的定义方式(如果丢失则将其发布)

此外,如果您使用多个Web.config文件,请确保所有连接字符串都正确,或者运行带有正确连接字符串的Web.config文件。