簡體   English   中英

在c#中連接到SQL Server時出現未知錯誤

[英]Unknown Error Connecting To SQL Server in c#

讓我為這篇文章添加一個快速解釋:

我正在使用visual studio,如果我創建了與數據庫的連接,它就可以工作。 我可以通過數據庫設計器(您看到表並可以創建新查詢的那個)查詢數據庫,並正確地處理數據。

但是,即使使用此路由,我也得到相同的sql異常。 對我來說,這說明視覺工作室中的某些東西沒有正確設置,但我可能是錯的。

我使用以下代碼連接到我的服務器上的數據庫(使用System.Data.SqlClient;在頂部):

SqlConnection thisConnection = new SqlConnection();
thisConnection.ConnectionString = 
                              "Data Source=192.168.0.0,1433;" +
                              "Initial Catalog=test-db;" +
                              "User Id=UserName;" +
                              "Password=Password;";
thisConnection.Open();

我收到以下錯誤:

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, TdsParserState state) 
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, TdsParserState state) 
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 
at System.Data.SqlClient.TdsParser.Connect(String host, SqlInternalConnection connHandler, Int32 timeout) 
at System.Data.SqlClient.SqlInternalConnection.OpenAndLogin() 
at System.Data.SqlClient.SqlInternalConnection..ctor(SqlConnection connection, Hashtable connectionOptions) 
at System.Data.SqlClient.SqlConnection.Open() 
at InventoryControl.Login.validUserName() 
at InventoryControl.Login.LoginButton_Click(Object sender, EventArgs e) 
at System.Windows.Forms.Control.OnClick(EventArgs e) 
at System.Windows.Forms.Button.OnClick(EventArgs e) 
at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam) 
at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam) 
at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain) 
at System.Windows.Forms.Application.Run(Form fm) 
at InventoryControl.Program.Main()

如果你有任何想法如何解決這個問題,將不勝感激!

例外情況如下:

System.Data.SqlClient.SqlError: SQL Server does not exist or access denied

但是我很肯定我有這個服務器的權限,因為我可以訪問它並在visual studio中查詢它。

我猜它找不到服務器了。 鑒於大多數路由器/調制解調器的默認配置,我懷疑192.168.0.0是您正在尋找的IP。 如果它在您的本地計算機上,請使用localhost127.0.0.1或您的計算機名稱(例如hans-pc )。 如果它在另一台計算機上,則需要確保您具有正確的IP,並且它已配置為在防火牆和SQL Server配置管理器中進行遠程訪問(啟用TCP / IP和/或命名管道協議)。

此外,您可以為該字符串中的屬性使用一些別名來縮短它:

server=192.168.0.0;database=test-db;user id=UserName;password=Password
                                                                      ↑
                                      Make sure no trailing semicolon ┘

我刪除了端口,因為1433是SQL Server的默認端口。

要獲取有關異常的更多信息,請嘗試以下代碼:

try
{
   ...
   thisConnection.Open();
   ...
}
catch (SqlException ex)
{
    for (int i = 0; i < ex.Errors.Count; i++)
    {
        Console.WriteLine(ex.Errors[i].ToString());
        // or output them wherever you need to see them
    }
}

好吧所以這里是大家的答案!

模擬器設置不正確...這與代碼無關! 您需要設置模擬器以連接到互聯網,如果使用移動模擬器,請參閱此鏈接:

http://www.xdevsoftware.com/blog/post/Enable-Network-Connection-Windows-Mobile-6-Emulator.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM