Привет!
вот пытаюсь подключиться к базе данных, но выдает такую ошибку —

и еще эту же ошибку выводит в такой строке
*****
adapter.Fill(table);
*****
private void connecting_Click(object sender, EventArgs e)
{
string userLogin = userName.Text;
string pass= Pass.Text;
int hash = Convert.ToInt32(Hash.Text);
baseUsers db = new baseUsers();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand("SELECT * FROM `users` WHERE 'name' = @uL AND 'pass' = @uK AND 'hash' = @uH", db.GetConnection());
command.Parameters.Add("uL", MySqlDbType.VarChar).Value = userLogin;
command.Parameters.Add("uK", MySqlDbType.VarChar).Value = pass;
command.Parameters.Add("uH", MySqlDbType.Int32).Value = hash;
adapter.SelectCommand = command;
adapter.Fill(table);
if (table.Rows.Count > 0)
{
MessageBox.Show("user [true]", "INFO");
}
else
{
MessageBox.Show("user [false]", "INFO");
}
}
прошу помощи , подключаюсь на удаленный сервер, вот данные (возможно указаны не правильно)
static string user = «server=77.222.40.101;port=5431;username=users;password=USER00;database=userBase»;
Im trying to connect to the database MySql but this error was appeared
FileNotFoundException was unhandled
in the line of adapter.Fill.
FileNotFoundException was unhandled Could not load file or assembly ‘Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106’ or one of its dependencies. The system cannot find the file specified
class CONNECT
{
private MySqlConnection connection = new MySqlConnection("Datasource=localhost;Port=3306;Username=root;Password=;Database=Csharp_Hotel_DB");
//create a function to return our connection
public MySqlConnection getConnection()
{
return connection;
}
//create a function to open the connection
public void openConnection()
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
}
//create a function to close the connection
public void closeConnection()
{
if (connection.State == ConnectionState.Open)
{
connection.Close();
}
}
}
private void buttonLogin_Click(object sender, EventArgs e)
{
CONNECT conn = new CONNECT();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand();
String query = "SELECT * FROM `users` WHERE `username`=@usn AND `password`=@pass";
command.CommandText = query;
command.Connection = conn.getConnection();
command.Parameters.Add("@usn", MySqlDbType.VarChar).Value = textBoxUsername.Text;
command.Parameters.Add("@pass", MySqlDbType.VarChar).Value = textBoxPassword.Text;
adapter.SelectCommand = command;
adapter.Fill(table); //this line is the FileNotFoundException was unhandled
// if the username and the password exists
if (table.Rows.Count > 0)
{
this.Hide();
MessageBox.Show("YES");
Main_Form mform = new Main_Form();
mform.Show();
}
else
{
if (textBoxUsername.Text.Trim().Equals(""))
{
MessageBox.Show("Enter Your Username to Login", "Empty Username", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (textBoxPassword.Text.Trim().Equals(""))
{
MessageBox.Show("Enter Your Password to Login", "Empty Password", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Username and Password Doesn't Exists", "Wrong Data", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
Im trying to connect to the database MySql but this error was appeared
FileNotFoundException was unhandled
in the line of adapter.Fill.
FileNotFoundException was unhandled Could not load file or assembly ‘Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106’ or one of its dependencies. The system cannot find the file specified
class CONNECT
{
private MySqlConnection connection = new MySqlConnection("Datasource=localhost;Port=3306;Username=root;Password=;Database=Csharp_Hotel_DB");
//create a function to return our connection
public MySqlConnection getConnection()
{
return connection;
}
//create a function to open the connection
public void openConnection()
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
}
//create a function to close the connection
public void closeConnection()
{
if (connection.State == ConnectionState.Open)
{
connection.Close();
}
}
}
private void buttonLogin_Click(object sender, EventArgs e)
{
CONNECT conn = new CONNECT();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand();
String query = "SELECT * FROM `users` WHERE `username`=@usn AND `password`=@pass";
command.CommandText = query;
command.Connection = conn.getConnection();
command.Parameters.Add("@usn", MySqlDbType.VarChar).Value = textBoxUsername.Text;
command.Parameters.Add("@pass", MySqlDbType.VarChar).Value = textBoxPassword.Text;
adapter.SelectCommand = command;
adapter.Fill(table); //this line is the FileNotFoundException was unhandled
// if the username and the password exists
if (table.Rows.Count > 0)
{
this.Hide();
MessageBox.Show("YES");
Main_Form mform = new Main_Form();
mform.Show();
}
else
{
if (textBoxUsername.Text.Trim().Equals(""))
{
MessageBox.Show("Enter Your Username to Login", "Empty Username", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (textBoxPassword.Text.Trim().Equals(""))
{
MessageBox.Show("Enter Your Password to Login", "Empty Password", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Username and Password Doesn't Exists", "Wrong Data", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
Правильно ли я подключаюсь к БД?
При подключение выходит ошибка на adapter.Fill(table);
using MySql.Data.MySqlClient;
...
private void buttonOk_Click(object sender, EventArgs e)
{
timer2.Start();
}
public static string Datasource = "localhost";
public static string Port = "3306";
public static string InitialCatalog = "user";
public static string Username = "user";
public static string Password = "pass";
//MySql
MySqlConnection connection = new MySqlConnection("datasource=" + Datasource + ";port=" + Port + ";Initial Catalog='" + InitialCatalog + "';username=" + Username + ";password=" + Password);
MySqlDataAdapter adapter;
DataTable table = new DataTable();
public void MySqlConnect()
{
adapter = new MySqlDataAdapter("SELECT `username`, `password` FROM `users` WHERE `username` = '" + textBoxUsername.Text + "' AND `password` = '" + textBoxPassword.Text + "'", connection);
adapter.Fill(table); //PROBLEM
if (table.Rows.Count <= 0)
{
panel1.Height = 0;
labelMessage.ForeColor = Color.Red;
labelMessage.Text = "Username Or Password Are Invalid";
timer1.Start();
}
else
{
panel1.Height = 0;
labelMessage.ForeColor = Color.Green;
labelMessage.Text = "Login Successfully";
timer1.Start();
}
table.Clear();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (panel1.Height != 100)
{
panel1.Height = panel1.Height + 5;
if (panel1.Height == 100)
{
timer1.Stop();
}
}
}
private void timer2_Tick(object sender, EventArgs e)
{
if (panel1.Height != 0)
{
panel1.Height = panel1.Height - 5;
if (panel1.Height == 0)
{
timer2.Stop();
}
}
}
private void checkBoxShowPass_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxShowPass.Checked)
{
textBoxPassword.UseSystemPasswordChar = true;
}
else
{
textBoxPassword.UseSystemPasswordChar = false;
}
}
...
Текст ошибки
MySql.Data.MySqlClient.MySqlException
HResult=0x80004005
Сообщение = Authentication to host 'localhost' for user 'user' using method 'mysql_native_password' failed with message: Access denied for user 'user'@'localhost' (using password: YES)
Источник = MySql.Data
Внутреннее исключение 1:
MySqlException: Access denied for user 'user'@'localhost' (using password: YES)
Извините, если я размещаю это не в том разделе, я понятия не имею, как это работает, и я полный нуб в кодировании. Я, однако, увлечен и мне нужна помощь. Я быстро отвечу на любые ваши вопросы, ребята, чтобы предоставить дополнительную информацию. Без лишних слов, вот мой код. Я объясню проблему ниже.
Imports System.Data.SqlClient
Imports System.Data
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim connection As New SqlConnection("Server = M's PC; Database = tyre_stocks_database_plain1.accdb; Integrated Security = true")
Dim command As New SqlCommand("select * from Login_info where Username = @Username and Password = @Password", connection)
command.Parameters.Add("@Username", SqlDbType.VarChar).Value = TextBoxUsername.Text.ToString()
command.Parameters.Add("@Password", SqlDbType.VarChar).Value = TextBoxPassword.Text.ToString()
Dim adapter As New SqlDataAdapter(command)
Dim table As New DataTable()
adapter.Fill(table)
If table.Rows.Count() <= 0 Then
MessageBox.Show("Username Or Password Is Invalid")
Else
MessageBox.Show("Login Successful")
End If
End Sub
End Class
Я получаю сообщение об ошибке «adapter.Fill (table)». В программе говорится:
«System.Data.SqlClient.SqlException:» Ошибка, связанная с сетью или конкретным экземпляром, произошла при установлении соединения с SQL Server. Сервер не был найден или был недоступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 — не удалось открыть подключение к SQL Server) ‘»
Если это все еще немного неясно, я пытаюсь создать страницу входа в систему, которая «разрешает вход» пользователю, при условии, что у них есть правильное имя пользователя и пароль, которые хранятся в базе данных.
Я убедился, что соединение с моей базой данных Microsoft Access активно, проверив наличие зеленого знака вилки рядом с именем базы данных. Если бы кто-нибудь мог предоставить какую-либо информацию о том, как помочь, я был бы очень благодарен. Пожалуйста, имейте в виду, что я новичок в кодировании и, следовательно, полный новичок (как упоминалось ранее: P), я незамедлительно отвечу на любые вопросы, чтобы предоставить дополнительную информацию. Спасибо товарищам кодировщикам!
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near » at line 1
Ошибка выскакивает в adapter.Fill(table); (35 строка).
После попытки выбора второй строки … или при попытке изменения выбранного пункта в первой строке … В datagridview1 — см строки 54-68
Думал проблема связана с MySQL — переустановил — не помогло.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AdvancedWizardControl.Wizard;
using AdvancedWizardControl.WizardPages;
using AdvancedWizardControl.Enums;
using AdvancedWizardControl.EventArguments;
using AdvancedWizardControl;
using Dapper;
using MySql.Data.MySqlClient;
using System.Diagnostics;
using System.IO;
namespace IT_A_stroy
{
public partial class WizardPageEventArgs : Form
{
public int PreviousPage { get; set; }
//DataSet ds;
MySqlDataAdapter adapter;
readonly string connectionString = «server=localhost;user=root;database=a_stroy;password=q1w2e3r4t5y6u7i8o9p0;»;
//string sql_1 = «select Progess, Progress_info from a_stroy.step3 where 1=2»;
public DataTable Execute(string script)
{
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
DataTable table = new DataTable();
connection.Open();
adapter = new MySqlDataAdapter(script, connection);
adapter.Fill(table);
return table;
}
}
private void СomboBox1_SelectedValueChanged(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
if (comboBox1.SelectedValue != null)
{
column1.DataSource = Execute($«SELECT id_Object, id_customer, Name_object FROM a_stroy.object where id_customer = {comboBox1.SelectedValue};»);
column1.DisplayMember = «Name_object»;
column1.ValueMember = «id_Object»;
int countRow = dataGridView1.RowCount == 1 ? 1 : dataGridView1.RowCount — 1;
//int DGV1 = comboBox1.SelectedIndex;
//ds.Tables[«step3»].Rows.Add(countRow);
}
}
private void DataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
ComboBox cbDgv = e.Control as ComboBox;
cbDgv.SelectedValueChanged -= CbDgv_SelectedValueChanged;
cbDgv.SelectedValueChanged += CbDgv_SelectedValueChanged;
}
private void CbDgv_SelectedValueChanged(object sender, EventArgs e)
{
ComboBox box = sender as ComboBox;
Debug.WriteLine(box.SelectedValue);
column2.DataSource = Execute($«SELECT id_Object, Name_works FROM a_stroy.words_object where id_Object = {box.SelectedValue}»);
column2.DisplayMember = «Name_works»;
column2.ValueMember = «id_Object»;
}
private void DataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//
}
…
Прикрепленные файлы:
Screenshot_11.jpg, Размер: 145,246 байт, Скачано: 118
Я пытаюсь подключиться к базе данных MySql, но эта ошибка появилась
FileNotFoundException не обработан
В строке adapter.Fill.
FileNotFoundException не обработано. Не удалось загрузить файл или сборку ‘Renci.SshNet, версия = 2016.1.0.0, культура = нейтральная, PublicKeyToken = 1cee9f8bde3db106’ или одна из ее зависимостей. Система не может найти указанный файл
class CONNECT
{
private MySqlConnection connection = new MySqlConnection("Datasource=localhost;Port=3306;Username=root;Password=;Database=Csharp_Hotel_DB");
//create a function to return our connection
public MySqlConnection getConnection()
{
return connection;
}
//create a function to open the connection
public void openConnection()
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
}
//create a function to close the connection
public void closeConnection()
{
if (connection.State == ConnectionState.Open)
{
connection.Close();
}
}
}
private void buttonLogin_Click(object sender, EventArgs e)
{
CONNECT conn = new CONNECT();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand();
String query = "SELECT * FROM `users` WHERE `username`=@usn AND `password`=@pass";
command.CommandText = query;
command.Connection = conn.getConnection();
command.Parameters.Add("@usn", MySqlDbType.VarChar).Value = textBoxUsername.Text;
command.Parameters.Add("@pass", MySqlDbType.VarChar).Value = textBoxPassword.Text;
adapter.SelectCommand = command;
adapter.Fill(table); //this line is the FileNotFoundException was unhandled
// if the username and the password exists
if (table.Rows.Count > 0)
{
this.Hide();
MessageBox.Show("YES");
Main_Form mform = new Main_Form();
mform.Show();
}
else
{
if (textBoxUsername.Text.Trim().Equals(""))
{
MessageBox.Show("Enter Your Username to Login", "Empty Username", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if (textBoxPassword.Text.Trim().Equals(""))
{
MessageBox.Show("Enter Your Password to Login", "Empty Password", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
MessageBox.Show("Username and Password Doesn't Exists", "Wrong Data", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
4 ответа
Лучший ответ
Кажется, что вы не обрабатываете исключения, которые адаптер. использовать:
try{
adapter.Fill(table);
} catch(FileNotFoundException e) {
do stuff with e or your code
}
В качестве альтернативы проверьте пути, если они существуют, прежде чем использовать их.
0
Dharman
1 Окт 2019 в 11:07
Вы создаете таблицу данных, не передавая имя в конструктор. Это означает, что таблица безымянна, и поэтому, когда вы пытаетесь вызвать Fill для безымянной таблицы, вы получаете исключение для вашего файла.
Вы должны передать имя таблицы
DataTable table = new DataTable("users");
0
Xerith
1 Окт 2019 в 08:33
Это ошибка в MySQL Connector / NET, ошибка 96614. Это будет исправлено в Connector / NET 8.0.18.
Исправлено в следующей версии MySQL Connector / NET 8.0.18, и вот запись в журнале изменений:
Развертывание Renci.SshNet.dll было проблематичным для установок MSI Connector / NET 8.0.17. Некоторые приложения, такие как Microsoft Excel, не смогли прочитать данные MySQL в результате. Это исправление удаляет ненужные зависимости от DLL, а также гарантирует, что установка MSI развертывает правильный файл Renci.SshNet.dll в GAC.
Обходной путь, который вы можете использовать сегодня, — это переключиться на MySqlConnector, альтернативную библиотеку OSS ADO.NET для MySQL, которая не имеет эта ошибка
0
Bradley Grainger
1 Окт 2019 в 23:55
Сейчас работает c. Использование MySQL-connector-net-6.3.5 может исправить эту ошибку или проблему, потому что я использую .net 4
Спасибо за помощь.
1
Haroldo Gondim
1 Окт 2019 в 11:48
Я пытаюсь заполнить данные с помощью SqlDataAdapter на С #. Я не очень знаком с объектами и в основном работаю над шаблоном чужого кода, чтобы попытаться понять, как он работает. Вот основная форма.
SqlCommand command = new SqlCommand(@"SELECT * FROM tblEmployees WHERE Name = " + firstSSN,connection);
SqlDataAdapter adapter = new SqlDataAdapter(command.CommandText.ToString(), connection.ConnectionString.ToString());
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(adapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
И это отлично работает с их формой. Я попытался сделать то же самое со своим, но получил ошибку при попытке преобразовать nvarchar в столбец с типом данных int. Я просмотрел MSDN и попробовал следующее: 1) Добавление столбцов в DataTable с соответствующими именами / типами / первичными ключами от tblEmployees. 2) Добавление TableMapping в DataAdapter, хотя я не на 100% уверен, что правильно владею синтаксисом в этой части. Я делаю:
adapter.TableMappings.Add("work", "dbo.tblEmployees");
для этого. DataTable называется «работа», но я не уверен, правильно ли я владею синтаксисом, я ввел имя таблицы, как оно отображается в SQL Server Management Studio, но не знаю, как я проверяю, правильно ли оно соединяется.
Спасибо за любую помощь, которую вы можете предоставить. Я забивал себе голову над этим до такой степени, что стою на грани того, чтобы подойти к своей цели совершенно по-другому и выбросить то, что у меня есть.
Skip to content
- ТВикинариум
- Форум
- Поддержка
- PRO
- Войти
Не работает INSERT INTO (MySQL c#)
Цитата: Клякнутый кля от 09.10.2022, 19:38Всем доброго, не могу понять, почему [spoiler title=»код»]
command = new MySqlCommand("INSERT INTO `users`(`login`, `password`) VALUES (@uL, @uP)", db.GetConnection()); // Команда SQL command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login; command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = password; adapter.SelectCommand = command; // Выполняем команду return "Пользователь создан";[/spoiler] не работает
Возвращается «Пользователь создан», но пользователя нет в БД
Если вписать запрос в PHPMyAdmin, то сработает (конечно если заменить@uL, @uP)
Почему запрос не выполняется?Помогите
Всем доброго, не могу понять, почему
command = new MySqlCommand("INSERT INTO `users`(`login`, `password`) VALUES (@uL, @uP)", db.GetConnection()); // Команда SQL
command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login;
command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = password;
adapter.SelectCommand = command; // Выполняем команду
return "Пользователь создан";
не работает
Возвращается «Пользователь создан», но пользователя нет в БД
Если вписать запрос в PHPMyAdmin, то сработает (конечно если заменить Скопировано@uL, @uP)
Почему запрос не выполняется?
Помогите
Цитата: Adler от 09.10.2022, 20:22Добрый день.
Очевидно же, что SelectCommand служит для выполнения запросов типаSELECT, а дляINSERTиспользуется InsertCommand
И по хорошему возврат типа создан / не создан нужно выдавать на основании какой-то проверки, например через тот-жеSELECT
Добрый день.
Очевидно же, что SelectCommand служит для выполнения запросов типа СкопированоSELECT, а для СкопированоINSERT используется InsertCommand
И по хорошему возврат типа создан / не создан нужно выдавать на основании какой-то проверки, например через тот-же СкопированоSELECT
Цитата: Клякнутый кля от 09.10.2022, 20:26Спасибо, но не помогло
Спасибо, но не помогло
Цитата: Adler от 09.10.2022, 20:46Посмотрел в одном своем старом проекте. Там это сделано так:
Это копипаст в упрощенном виде из хоть и не завершенного, но рабочего проекта (в исходном коде INSERT выполняется в цикле с ~75млн записей 😊) в качестве примера.P.S. Вставил в качестве скриншота, т.к. плагин для подсветки и форматирования кода ломается на некоторых @
Посмотрел в одном своем старом проекте. Там это сделано так:

Это копипаст в упрощенном виде из хоть и не завершенного, но рабочего проекта (в исходном коде INSERT выполняется в цикле с ~75млн записей 😊) в качестве примера.
P.S. Вставил в качестве скриншота, т.к. плагин для подсветки и форматирования кода ломается на некоторых @
Цитата: Клякнутый кля от 09.10.2022, 21:16Не помогло(
Прикол в том что проверка на зарегистрированный аккаунт работает
[spoiler title=»Весь метод»]public string Register(string login, string password) { DB db = new DB(); DataTable table = new DataTable(); MySqlDataAdapter adapter = new MySqlDataAdapter(); MySqlCommand command = new MySqlCommand("SELECT * FROM `users` WHERE `login` = @uL", db.GetConnection()); // Команда SQL command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login; // Заменяем заклёпки adapter.SelectCommand = command; // Выполняем команду adapter.Fill(table); // Получаем информацию из выполненной команды if (table.Rows.Count == 1) // Если, есть в таблице пользователь с указанными данными return "Пользователь не зарегистрирован, такой пользователь уже существует"; else { command = new MySqlCommand("INSERT INTO `users`(`login`, `password`) VALUES (@uL, @uP)", db.GetConnection()); // Команда SQL command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login; command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = password; adapter.InsertCommand = command; // Выполняем команду return "Пользователь зарегистрирован"; } }[/spoiler]
Не помогло(
Прикол в том что проверка на зарегистрированный аккаунт работает
public string Register(string login, string password)
{
DB db = new DB();
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand("SELECT * FROM `users` WHERE `login` = @uL", db.GetConnection()); // Команда SQL
command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login; // Заменяем заклёпки
adapter.SelectCommand = command; // Выполняем команду
adapter.Fill(table); // Получаем информацию из выполненной команды
if (table.Rows.Count == 1) // Если, есть в таблице пользователь с указанными данными
return "Пользователь не зарегистрирован, такой пользователь уже существует";
else
{
command = new MySqlCommand("INSERT INTO `users`(`login`, `password`) VALUES (@uL, @uP)", db.GetConnection()); // Команда SQL
command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login;
command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = password;
adapter.InsertCommand = command; // Выполняем команду
return "Пользователь зарегистрирован";
}
}
Цитата: Adler от 09.10.2022, 21:22У вас вероятно каша между db, table и adapter.
Не понятно, как это все между собой соотносится, не понятно что такое DB() и зачем вам там DataTable.
У вас вероятно каша между db, table и adapter.
Не понятно, как это все между собой соотносится, не понятно что такое DB() и зачем вам там DataTable.

Цитата: Иван от 10.10.2022, 14:49Добрый день.
Попробуйте использовать для вашей переменной MySqlCommand (command) метод ExecuteNonQuery. Он выполнит инструкцию для подключения, в Вашем случае, выполнит команду INSERT.
Ну, а возвращает значение он в любом случе, потому что это у вас единственный путь и он единственно верный. Чтобы возвращал ошибку, можно попробовать использовать try:catch или проверять выполнение ExecuteNonQuery и в случае, если он не вернет значение задействонных строк, то выдавать ошибку, иначе успех.[spoiler title=»использование insert с офф. сайта»]
System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING"); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')"; cmd.Connection = sqlConnection1; sqlConnection1.Open(); cmd.ExecuteNonQuery(); sqlConnection1.Close();Тут я бы вставил всё в using 🙂
Источник
[/spoiler]Вообще, очень рекомендовал бы использовать EntityFramework для работы с MS SQL Server, для общего развития посоветовал бы почитать. Возможно он понравится Вам больше, нежели стандартныеустаревшие средства.
Не удержался и показал как регистрация выглядит на Entity
[spoiler title=»шпоньк»]
using (UserContext db = new UserContext()) { User user = new Users(); user.login = loginString; user.password = passwordString; await db.SaveChangesAsync(); return "Успех"; }Писал на скорую руку, так что не сделал то, что сам указывал сверху. Однако это актуальный вариант работы с фреймворком. Чтобы сделать проверку на существование пользователя достаточно одной строки
User user = db.Users.Find(id);или любой аналог поиска при помощи Linq.[/spoiler]Надеюсь был полезен. Желаю удачи!
Добрый день.
Попробуйте использовать для вашей переменной MySqlCommand (command) метод ExecuteNonQuery. Он выполнит инструкцию для подключения, в Вашем случае, выполнит команду INSERT.
Ну, а возвращает значение он в любом случе, потому что это у вас единственный путь и он единственно верный. Чтобы возвращал ошибку, можно попробовать использовать try:catch или проверять выполнение ExecuteNonQuery и в случае, если он не вернет значение задействонных строк, то выдавать ошибку, иначе успех.
System.Data.SqlClient.SqlConnection sqlConnection1 =
new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT Region (RegionID, RegionDescription) VALUES (5, 'NorthWestern')";
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();
Тут я бы вставил всё в using 🙂
Источник
Вообще, очень рекомендовал бы использовать EntityFramework для работы с MS SQL Server, для общего развития посоветовал бы почитать. Возможно он понравится Вам больше, нежели стандартныеустаревшие средства.
Не удержался и показал как регистрация выглядит на Entity
using (UserContext db = new UserContext())
{
User user = new Users();
user.login = loginString;
user.password = passwordString;
await db.SaveChangesAsync();
return "Успех";
}
Писал на скорую руку, так что не сделал то, что сам указывал сверху. Однако это актуальный вариант работы с фреймворком. Чтобы сделать проверку на существование пользователя достаточно одной строки СкопированоUser user = db.Users.Find(id); или любой аналог поиска при помощи Linq.
Надеюсь был полезен. Желаю удачи!
Цитата: Клякнутый кля от 10.10.2022, 16:00Огромное спасибо
Вот [spoiler title=»код»]command = new MySqlCommand("INSERT INTO `users`(`login`, `password`) VALUES (@uL, @uP)", db.GetConnection()); // Запрос SQL { db.OpenConnection(); command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login; // Заменяем заклёпки command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = password; // Заменяем заклёпки // Заменяем заклёпки (сложнее взломать) command.ExecuteNonQuery(); db.CloseConnection(); } return "Пользователь зарегистрирован";[/spoiler]С EntityFramework возникли сложности установить в проект, поэтому я по старинке)
Огромное спасибо
Вот
command = new MySqlCommand("INSERT INTO `users`(`login`, `password`) VALUES (@uL, @uP)", db.GetConnection()); // Запрос SQL
{
db.OpenConnection();
command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = login; // Заменяем заклёпки
command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = password; // Заменяем заклёпки // Заменяем заклёпки (сложнее взломать)
command.ExecuteNonQuery();
db.CloseConnection();
}
return "Пользователь зарегистрирован";
С EntityFramework возникли сложности установить в проект, поэтому я по старинке)