none
发现connectStringBuilder.DataSource的问题 RRS feed

  • 问题

  • 很奇怪在两台电脑上使用同样的程序,出现不一样的结果。是不是sql数据库的原因呢?

    一台电脑上安装了vs2010以及sql2008,然后使用connectStringBuilder.DataSource = "(local)“参数可以正常联结数据库。

    一台电脑上仅仅安装了vs2010,然后使用connectStringBuilder.DataSource = ".\SQLEXPRESS"参数可以正常连接数据库,但是使用"(local)“,就提示实例不正确,就如下图所示:

    不知道是什么原因。请指点。

    2013年4月16日 8:13

答案

  • 这个DataSource是SQL实例名相关。

    (local)=.(我的意思是local等于实心句点)。

    但是如果你只安装了VS2010啥的,默认安装的是SQL Express,实例名称是(local)\SQLEXPRESS不是单独的实心句点(或者是local。请注意,这只是标准版的SQL安装默认的实例名称。


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats

    2013年4月16日 8:55
    版主
  • 没有对应的函数可以读取实例的名称么?
    找到了解决的办法了:

    Dim dataSources As New DataTable
            dataSources = SqlClient.SqlClientFactory.Instance.CreateDataSourceEnumerator.GetDataSources
            If dataSources.Rows(0).Item(1).ToString = "SQLEXPRESS" Then
                connectStringBuilder.DataSource = ".\SQLEXPRESS"
            Else
                connectStringBuilder.DataSource = "(local)"
            End If
    2013年4月20日 16:05

全部回复

  • 这个DataSource是SQL实例名相关。

    (local)=.(我的意思是local等于实心句点)。

    但是如果你只安装了VS2010啥的,默认安装的是SQL Express,实例名称是(local)\SQLEXPRESS不是单独的实心句点(或者是local。请注意,这只是标准版的SQL安装默认的实例名称。


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats

    2013年4月16日 8:55
    版主
  • 多谢指点。附加一个追问,如何通过程序判断当前计算机上的实例名称呢?
    如果能判断的话就可以增加兼容性,免得在不同电脑上不一定连接的上。
    2013年4月17日 4:52
  • 建议把链接字符串写到配置文件中动态读取,这样即便是不一样也可以动态修改。

    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats

    2013年4月17日 5:13
    版主
  • 没有对应的函数可以读取实例的名称么?
    找到了解决的办法了:

    Dim dataSources As New DataTable
            dataSources = SqlClient.SqlClientFactory.Instance.CreateDataSourceEnumerator.GetDataSources
            If dataSources.Rows(0).Item(1).ToString = "SQLEXPRESS" Then
                connectStringBuilder.DataSource = ".\SQLEXPRESS"
            Else
                connectStringBuilder.DataSource = "(local)"
            End If
    2013年4月20日 16:05