簡體   English   中英

如何連接到本地MSSQL數據庫

[英]How do I connect to a Local MSSQL Database

編輯:我剛剛在ASP.NET中對其進行了測試,它工作得很好。 因此,連接字符串等都沒有問題。 猜猜Unity不喜歡這種方法嗎? 也許還有一些我需要復制的DLL? 有任何想法嗎?

因此,我正在Unity中進行游戲,並且嘗試使用System.Data.SqlClient庫連接到我為諸如注冊用戶之類的事情而創建的一些存儲過程。

我已經從“ C​​:\\ Program Files \\ Unity \\ Editor \\ Data \\ Mono \\ lib \\ mono \\ unity”復制了System.Data.dll,並且一切正常。

我當前正在使用此連接字符串,該字符串在ASP.NET應用程序上可以正常工作,但僅使用其他mdf:

private string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='C:\Users\uppy8\Desktop\Computer Science Project\Mining Game\Assets\MineRace.mdf';Integrated Security = True";

運行此代碼時會發生問題:

using System.Data.SqlClient;
using System.IO;

public void Login()
{
    Crypto crypto = new Crypto();

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        try
        {
            conn.Open();
        } catch (Exception e)
        {
            Debug.Log(e);
        }

        SqlCommand command = new SqlCommand("USERS_LOGIN_USER", conn);
        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.Add(new SqlParameter("@Username", usernameInputField.text));

        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                if (crypto.EncryptString(passwordInputField.text) == reader["password"].ToString())
                {
                    UserAccountManager.instance.userInfo = FetchUserInfo((int)reader["id"]);
                }
            }
        }
    }

問題發生在“ conn.Open()”行,Unity給我錯誤:

System.Net.Sockets.SocketException: No such host is known.

此外,如果沒有try catch,則會在我創建新的SqlDataReader的地方發生錯誤,並在其中出現以下問題:

InvalidOperationException: ExecuteReader requires an open connection to continue. This connection is closed.

我知道這是連接的問題,因為它沒有運行或連接無法正常工作,但是我似乎找不到解決方案,並且暗中懷疑它與Unity不支持有關這個圖書館。

在我結束之前還要進行一些澄清:

  • 用戶將其憑據輸入“ usernameInputField”和“ passwordInputField”
  • 用戶按下登錄,運行上面顯示的“登錄”方法
  • 發生錯誤。

如果需要更多信息,請發表評論。

謝謝!

connectionString的范圍是什么? 您是否需要將connectionString傳遞給Login()函數?

public void Login(string connectionString)

我是DBA,而不是.Net開發人員,所以如果我的問題太基礎或.Net語法錯誤,請原諒我。

你可以試試這個

string connectionString = @"Data Source = (localdb)\MSSQLLocalDB; Initial Catalog ='C:\USERS\uppy8\Desktop\Computer Science Project\Mining Game\Assets\MineRace.mdf'; Integrated Security = True; Connect Timeout = 30; Encrypt = False; TrustServerCertificate = True; ApplicationIntent = ReadWrite; MultiSubnetFailover = False"
        SqlConnection con = new SqlConnection();   
                    if (con.State==ConnectionState.Open)
                    {
                        con.Close();
                        con.ConnectionString = connectionString;
                        con.Open();
                        cmd.Connection = con;
                    }
                    else
                    {
                        con.ConnectionString = connectionString;
                        con.Open();
                        cmd.Connection = con;
                    }

暫無
暫無

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

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