Below there would be an example of one of the scripts accesing the database (it’s hosted on GearHost using SSMS)
It’s the first time I’m useing a database so I’m not really sure what I am missing. Couldn’t find any helpful solution online. The only thing I found suggested to include the Il18N.West.dll which just gives me another assembly error.
Help is greatly appreciated.
The script (The InsertPlayerName is the importnant part):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Data.Sql;
using System.Data.SqlClient;
using TMPro;
public class End : MonoBehaviour
{
[SerializeField] private TextAsset dbPath;
public RaycastHit hit;
private string playerName;
private int currentID;
[SerializeField] private Canvas m_PromptCanvas;
[SerializeField] private Canvas m_UsernameCanvas;
[SerializeField] private TMP_InputField m_UsernameInput;
[SerializeField] private Canvas m_NoInternetCanvas;
void Start()
{
m_PromptCanvas.enabled = false;
m_UsernameCanvas.enabled = false;
m_NoInternetCanvas.enabled = false;
}
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (m_NoInternetCanvas.enabled)
{
if (Input.GetButton("Cancel"))
{
m_NoInternetCanvas.enabled = false;
}
}
else if (m_UsernameCanvas.enabled)
{
if (Input.GetButton("Cancel"))
{
m_UsernameCanvas.enabled = false;
}
if (Input.GetButton("Enter") && !string.IsNullOrWhiteSpace(m_UsernameInput.text))
{
PlayerPrefs.SetString("username", m_UsernameInput.text);
PlayerPrefs.Save();
m_UsernameCanvas.enabled = false;
m_PromptCanvas.enabled = false;
}
}
else if (m_PromptCanvas.enabled)
{
}
else if (Physics.Raycast(ray, out hit, Mathf.Infinity, Physics.DefaultRaycastLayers, QueryTriggerInteraction.UseGlobal) && hit.collider.gameObject.tag == "Button")
{
hit.collider.gameObject.GetComponent<ButtonSwing>().changeSize = true;
hit.collider.gameObject.GetComponent<ButtonSwing>().timeSinceHit = 0;
if (Input.GetKeyDown(KeyCode.Mouse0))
{
if (hit.collider.gameObject.name == "Main Button")
{
SceneManager.LoadScene("Main Menu", LoadSceneMode.Single);
}
else if (hit.collider.gameObject.name == "Restart Button")
{
SceneManager.LoadScene("Test Main", LoadSceneMode.Single);
}
else if (hit.collider.gameObject.name == "Leaderboard Button")
{
if (!string.IsNullOrWhiteSpace(PlayerPrefs.GetString("username")))
{
playerName = PlayerPrefs.GetString("username");
m_PromptCanvas.enabled = false;
InsertPlayerName();
InsertScore();
SceneManager.LoadScene("Leaderboard", LoadSceneMode.Single);
}
else
m_PromptCanvas.enabled = true;
}
}
}
}
public void InsertPlayerName()
{
string content = dbPath.text;
using (SqlConnection con = new SqlConnection(content))
{
string sqlcmd = "IF NOT EXISTS(SELECT player FROM dbo.Players WHERE player = '" + playerName + "') BEGIN INSERT INTO dbo.Players(player) VALUES('" + playerName + "') END";
using (SqlCommand cmd = new SqlCommand(sqlcmd, con))
{
cmd.CommandType = System.Data.CommandType.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch (SqlException)
{
m_NoInternetCanvas.enabled = true;
}
}
con.Close();
}
}
The screenshot of errors in the devolpment build: