none
同樣的V C# EXPRESS(or VS2010) 跟SQL 2008 R2 ( 版本 661 655) RRS feed

  • 問題

  • 首先這的確是老問題,對於爬文還無法解決的我深感抱歉,但還是想問問看所以然

    看了許多文 並且按照了許多方法卻還是一無所獲

    我的狀況是這樣的

    SQL 2008 R2  (標準版    非EXPRESS)

    C# EXPRESS  (免費版)

    VS 2010 試用版

    以下是重灌後

    電腦本身W7系統32位元版,SQL版本是2008 R2(661)

    為了編寫C#  下載了C# EXPRESS 來用,選擇的部分,不勾選 SQL 2008 EXPRESS 的安裝

    第一次的問題點 *(雖然標題是VS2010  試用版本的,但下面的圖 當時版本應該是C# EXPRESS)

    連資料庫都失敗

    這個問題查了一下,似乎是SQL沒有允許遠端連結,所以設定了一下網路組太TCP/IP啟用,或是設定資料庫的執行個體名稱等等,但結果還是不行

    看了下網路上的方法是關於VS2010 而不是C# EXPRESS,所以再繼續裝了VS 2010 試用版本

    但這似乎更糟糕了,EXPRESS我沒有去選擇安裝的部分,因為我看了看裡面內容,似乎都是2008 R2 所以沒想很多

    原本的服務那邊顯示上並沒有SQL(SQLEXPRESS) 相關選項,現在遽然跑出來了,所以我應該是有裝了655版本

    不過C# EXPRESS資料來源那邊的4個選項反而可以用了,在第一個問題點那邊是無法使用的,會出現無法連到資料庫的警告視窗

    現在狀況回到最原本的問題(661 跟 655)之外,圖的上面是用C# EXPRESS開啟的,下面是用VS2010開啟的  

    兩個問題一起出來.......

    是因為我只是用了試用版本?   還是我的安裝錯誤?

      

    除了這個找不到661而只找到655版本之外,另一個問題是我在先安裝了SQL 2008 R2 之外  V C# EXPRESS 沒有抓到我已經裝了的 R2

    這方面我是應該如何正確地設定?

    不排除重灌的方法,因為我旁邊的工程師已經先預想到會這樣所以幫我做了還原備份,所以重灌的作法是沒關係的

    (不過還原的部分是 包含已經有SQL 2008 R2)

    最主要的還是想找到一個可以解決的方法

    附註一下   我有先更新 SQL 2008 R2 SP1

    之後再更新 VS2010 SP1 而 SQL 2008 SP3 則是沒有更新的狀態

    • 已編輯 DOMINASION 2012年6月14日 上午 08:35 加附註
    2012年6月14日 上午 08:31

解答

  • 661 看起來是 SQL Server 2008 R2 SP1 的版本,以 attach db 來看,確實只能升版而不能降版

    另外,標準版不支援 AttachDbFileName  這種方式,你必須在 SQL Server Management Studio 中去掛

    Visual Studio 偵測到你的連線字串中有 AttachDbFileName  的話,會去抓取你的 SQL Express,如果剛好又是 SQL Express 不在預期版本 (661) 內,就會出現錯誤,因為 attach db 是不能降版的。

    關於 SQL Network Interface Error 26,可參考:http://blogs.msdn.com/b/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。
    =================================
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年6月14日 上午 09:16
    版主

所有回覆

  • 661 看起來是 SQL Server 2008 R2 SP1 的版本,以 attach db 來看,確實只能升版而不能降版

    另外,標準版不支援 AttachDbFileName  這種方式,你必須在 SQL Server Management Studio 中去掛

    Visual Studio 偵測到你的連線字串中有 AttachDbFileName  的話,會去抓取你的 SQL Express,如果剛好又是 SQL Express 不在預期版本 (661) 內,就會出現錯誤,因為 attach db 是不能降版的。

    關於 SQL Network Interface Error 26,可參考:http://blogs.msdn.com/b/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。
    =================================
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年6月14日 上午 09:16
    版主
  • 也就是說我得按照

                     cn.ConnectionString = "Server= SEVERNAME;"
                 + "database= DATANAME ;"
                 + "uid= USERID ;pwd= PASSWORD";
                ShowConnection();

    類似這樣的連結STRING才可以連結?  

    剛剛試寫一個用這種方式連結的程式

    看起來應該是有連結過@@ ,雖然我也有看沒有懂@@

    不過我大概知道你的意思,我的確大部分的連結都用AttachDbFileName來連結,原來這是我第一個盲點

    那我應該就剩下SQL Network Interface Error 26這問題要解決了,我再繼續研究一下那篇文章

    2012年6月14日 上午 09:45
  • 您好,

    請問您使用SSMS可連得到SQL Server嗎?

    相關的連接字串,可參考:http://www.connectionstrings.com/sql-server-2008


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年6月14日 上午 10:18
  • 一般來說,如果有 SQL Server,通常不建議使用 SQL Express,那是在沒有環境時才會用,而且多半只適用於單機開發 (當然可用在 Web,但就不能使用 AttachDbFileName,否則會有多人存取的鎖定問題)。

    連結字串很簡單,只要多用就習慣了。


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。
    =================================
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年6月14日 上午 11:30
    版主
  • MSDN 有特別說明 [連接字串 (ADO.NET)]

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年6月14日 下午 01:49
    版主
  • 感謝各位的幫忙

    我的錯誤的部分就是連結字串那邊都是用AttachDbFilename,而對於

    SQL Network Interfaces, error: 26

    這個問題,似乎也包含在AttachDbFilename中,順便解決了

    但這邊我又衍伸了一個新的小問題

    我連成功的方法是下面圖裡面的上面那張,點選了資料來源裡面連結資料庫的選項

    使用的是VS2010 試用版本中藍色的選項才可以連到上線中的資料庫

    但是下圖的是用C# EXPRESS沒有這個選項可以選擇

    也就是說我得關掉MSSQL的服務設定才可以連線上線中的資料庫,但是又因為上線中的資料庫本身是661版本

    C# EXPRESS則只能選擇655版本

    這是真的完全受限於EXPRESS版本的功能,還是說這方面我還有另外的方法可以去克服?

    2012年6月15日 上午 01:38
  • 您好,

    那應該是Express的限制哦! 我手動加到machine.config之中,也是沒有效!

    請參考:"Unable to find the requested .Net Framework Data Provider. It may not be installed."


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/



    • 已編輯 亂馬客 2012年6月15日 上午 03:36
    2012年6月15日 上午 03:01
  • 有試過 SqlConnection 類別 直接輸入ConnectionString 嗎?


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2012年6月16日 上午 08:42