iT邦幫忙

1

C#遠端連線sql sever

小弟目前利用C#在寫一系統,
但遇到了一問題下:
本地端連sql server database可以連線
但是在我將專案移植到別人電腦時,無法連到db(是網段不同造成的問題嗎?如果是麻煩各位大師幫小弟解惑)

yesongow iT邦大師 1 級 ‧ 2020-08-03 11:01:01 檢舉
你覺得,你的localhost database預設是(允許)全世界來對你的database連線嗎?
Sleep iT邦新手 5 級 ‧ 2020-08-03 11:12:43 檢舉
我是有參照網路上的做法改變
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
5
暐翰
iT邦大師 1 級 ‧ 2020-08-03 10:57:29

你好,歡迎來到IT邦幫忙,你的問題需要參考別人發問的方式 :

  1. 請先貼出詳細的錯誤Log

System.InvalidCastException: Unable to cast object of type 'd__9' to type 'System.Collections.IDictionaryEnumerator'.
at System.Text.Json.JsonSerializer.HandleDictionary(JsonClassInfo elementClassInfo, JsonSerializerOptions options, Utf8JsonWriter writer, WriteStack& state)

  1. 能有代碼範例、版本號
public class Demo
{
    //..略
}

環境版本 : .netframework 4.x , windows 10 xxx version


否則你的按照敘述 :

本地端連sql server database可以連線
但是在我將專案移植到別人電腦時,無法連到db(是網段不同造成的問題嗎?如果是麻煩各位大師幫小弟解惑)

只能回答你,可能是不同網段造成的,假如沒互通

0
打狗松鼠
iT邦新手 4 級 ‧ 2020-08-03 16:12:23

沒Po程式碼、沒Po錯誤訊息、沒給Settings及Config

通靈結果如下:
如果你的DB是

  • 使用localDB,請去查詢一下localDB是拿來幹嘛的
  • 使用RDBMS,連線字串指定IP為localhost/127.0.0.1,那當然只有本地端可以連,因為你只有本地端才有資料庫,當然也就只有本地端才能連
  • 使用RDBMS,連線字串指定Windows驗證,通靈猜測你是直接安裝好SQL Server然後使用預設資料庫,那還是一樣,只有本地端有資料庫,當然也就只有本地端才能連

開發資料庫軟體時請注意軟體及資料庫的連線要是互通的,至於互通會遇到的問題有很多,有網段、防火牆、版本甚至壓根沒有資料庫等,請附上錯誤訊息,不然大家只能通靈。

0
japhenchen
iT邦超人 1 級 ‧ 2020-08-04 07:50:59

可能的原因

1、客戶端的電腦並未安裝相應的資料庫連接驅動,像
MDAC
Microsoft ACE OLEDB 12.0
SQL CLR TYPES(看你的SQL版本安裝)
.......

2、客戶端的Windows系統為家用版,等你把缺少的商用功能裝完,這台電腦也就不是家用輕裝版了吧

3、你的設計平台太新,客戶端的太舊,連.NET FRAMEWORK都無法安裝同一版次,那可能就沒辦法了(如XP無法安裝.NET FRAMEWORK4.0以上版本)
或反過來,你的太舊,客戶端的太新,如果是這樣,可以在程式EXE或捷徑檔上按滑鼠右鍵,相容性設到XP SP3、以系統管理員身份執行打勾,或許可以解決

我要發表回答

立即登入回答