[英]Error when connecting to SQL Server with C# in other computer, why?
[英]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。 如果它在您的本地計算機上,請使用localhost
或127.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.