Не являюсь специалистом по Unity, возникла задача "допиливания" кода.
Имеется приложение, написанное на Unity. Версий Unity было много, сейчас работаю с последней - Unity 2019.2.11f1.
Это приложение является частью системы, данные передаются в Unity-приложение из обычного .NET WPF-приложения с помощью BinaryWriter
, а считываются, соответственно, через BinaryReader
. Это работает и не вызывает вопросов. При этом библиотека работы с IPC реализована под .NET Framework 3.5.
Задача - получить в Unity поле из базы банных (MS SQL Server).
Как я понимаю, из-за кроссплатформенности Unity доступ к SqlConnection (ADO) или DataContext (LinqToSql) "ограничен". Или я неправ?
Вижу два пути решения:
BinaryWriter
- это повлечет за собой погружение в N библиотек, не хотелось бы.При попытке реализации второго пути:
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(commandText);
object result = cmd.ExecuteScalar();
result.ToString();
}
Получаю ошибку Snix_Connect (provider: SNI_PN7, error: 25 - SNI_ERROR_25)\nSnix_Connect (provider: SNI_PN7, error: 25 - SNI_ERROR_25)"
Естественно, connectionString
и commandText
верные, проверено через SSMS и на тест-контейнерах.
Возможно, дело в библиотеках mono
?
Буду благодарен любым советам.
Заранее спасибо!
Я лишь однажды имел дело с sql и между базой и клиентом был php. С php до этого дела не имел, но он довольно лёгкий. И кажется через класс WWW обращался к php скрипту, после чего получаешь ответ переменной или json.
Нашёл свой первый пробный код.
< ?php
$servername = "localhost";
$username = "-----";
$password = "-----";
$databasename = "-----";
$UserName = $_POST["UserName"];
$UserPassword = $_POST["UserPassword"];
$con = new mysqli($servername, $username, $password, $databasename);
if ($con) {
$dub = "SELECT UserID FROM Users WHERE UserName = '".$UserName."' AND UserPassword = '".$UserPassword."'";
$result = mysqli_query($con, $dub);
if ($result) {
$rowscount = mysqli_num_rows($result);
while ($row = mysqli_fetch_assoc($result)) {
echo($row['UserID']);
}
} else {
echo("Query Failed");
}
} else {
//die ("Coonection Failed.".mysql_connect_error());
echo("Coonection Failed");
}
?>
C#
public string UserName;
public string UserPassword;
void Start () {
StartCoroutine(UserLogin());
}
IEnumerator UserLogin () {
Debug.Log("UserLogin");
WWWForm LoginForm = new WWWForm();
LoginForm.AddField("UserName", UserName);
LoginForm.AddField("UserPassword", UserPassword);
string Url = "http://-----.000webhostapp.com/LoginPC.php";
WWW Log = new WWW(Url, LoginForm);
yield return Log;
if (Log.error == null) {
string LogText = Log.text;
if (LogText == "Connection Failed") {
LoginFailed("Coonection Failed");
} else if (LogText == "Query Failed") {
LoginFailed("Query Failed");
} else if (LogText == "Login Failed") {
LoginFailed("Wrong Login or Password");
} else {
int uid = int.Parse(Log.text);
LoginSuccess(uid);
}
} else {
LoginFailed(Log.error);
// 504 Gateway Time-out
}
}
void LoginSuccess (int UserID) {
Debug.Log("Login Success UserID:"+UserID);
}
void LoginFailed (string error) {
Debug.Log("Login Error"+System.Environment.NewLine+error);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Нужно создать приложение погды на C#В теории все просто, но на практике все туторы на С# котороые я находил используют openweathermap, а у меня на этом...
Поместил dataGridView в wiforms и создал таблицу 5 колонок / 1000 строк Первую колонку полностью заполнил данными string - строки из 10-15 символов, а остальные...
Что не так в Selenium или xpath ? Я использую xpath //span[@id='responseDate'], а проверка на наличие элемента приносит мне false, хотя в тоже время - я без проблем могу...