代码之家  ›  专栏  ›  技术社区  ›  Saher Ahwal

C数据库连接SQL Server 2005中的ConnectionString问题

  •  1
  • Saher Ahwal  · 技术社区  · 14 年前

    我是使用ASP.NET和C的初学者,这是我第一次尝试与SQL Server 2005数据库建立连接:

    下面是我连接到SQL Server数据库的简单代码,我正在获取标签中设置的文本消息。连接字符串有问题吗????如果是这样的话,请举例说明如何写它,如何获得服务器名称并正确地写它……或者如何指定数据库名称(所有路径或只是数据库名称)??)

    protected void Page_Load(object sender, EventArgs e)
            {
                SqlConnection connection = new SqlConnection("server = Saher;Database=Database.mdf;integrated security = true");
                try{
                    connection.Open();
                }
                catch{
                    lblMessage.Text = "COULDN'T CONNECT to Stupid database";
                }finally{
                    connection.Close();
                }
    
    
    
            }
    

    谢谢,

    5 回复  |  直到 14 年前
        1
  •  2
  •   codingbadger    14 年前

    使用可信连接的SQL Server的连接字符串应如下所示:

    Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI

    myServerAddress 可以是服务器名称的IP地址,例如sqlserver01或192.168.1.5 myDataBase 应该是实际的数据库名称,而不是MDF文件,例如Northwind

        2
  •  1
  •   Abe Miessler    14 年前

    将您的代码更改为此并发布lblMessage中包含的内容:

    protected void Page_Load(object sender, EventArgs e)
            {
                SqlConnection connection = new SqlConnection("server = Saher;Database=Database.mdf;integrated security = true");
                try{
                    connection.Open();
                }
                catch(Exception ex)
                {
                    lblMessage.Text = ex.Message;
                }finally{
                    connection.Close();
                }
    
            }
    

    现在,您通过将“无法连接到愚蠢的数据库”放入错误标签来隐藏问题。

        3
  •  1
  •   Henk Holterman    14 年前

    其他人已经建议更好的异常处理来获取一些信息。

    另一种方法: 此外,还可以使用Visual Studio的“添加数据源”向导查找并连接到数据库。您可以在虚拟页面或项目中执行此操作。然后复制结果连接字符串(从xx.config)。

        4
  •  0
  •   Chaitanya    14 年前

    检查这个 Connection-Strings

    在所有这些之前,您能否明确说明您使用的是哪个版本的SQL Server,并且数据库文件是否位于app_data目录中?

    //Change the catch statement to get the error
    //Original Code
    
    catch{
      lblMessage.Text = "COULDN'T CONNECT to Stupid database";
    }
    
    //Change it into
    catch(Exception ex){
      lblMessage.Text = ex.Message.ToString();
    }
    
        5
  •  0
  •   Saher Ahwal    14 年前

    谢谢大家!我想我这里有不止一个问题,但是让我展示一下解决方案,这样就不会有人花费很多时间连接到SQL Server数据库!!

    protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\ChurchApp\ChurchApplication\App_Data\Database.mdf;Integrated Security=True;User Instance=True");
            try{
                connection.Open();
                lblMessage.Text = "Connection Succeeded!";
            }
            catch(Exception ex){
                lblMessage.Text = ex.Message;
            }finally{
                connection.Close();
            }
    
    
    
        }
    

    我有 @ 连接字符串前缺少签名,我使用/代替来克服我得到的错误!!!!(别那样做!!)

    右键单击服务器资源管理器中的数据库并修改连接,然后单击高级,获取连接字符串…..从您获得的高级属性复制所有内容,或者只复制页面底部的基本连接字符串。