Ahmed Adel Ответов: 2

Я не могу вставить значение в таблицу SQL с помощью C#


привет ребята ,

Я делаю небольшую программу для текстового поля,чтобы добавить в sql,но с подключением sql IP , имя пользователя , пароль и что подключение работает правильно, как я знаю, но я пробовал много кода, и я не могу поставить значение моя таблица имеет только одно имя colum-ip ... имя ботнета-база данных, имя таблицы-тест, имя colum - ip
string connetionString;
SqlConnection cnn;
connetionString = @"Data Source=192.168.1.21,1433;Initial Catalog=botnet;User ID=sa;Password=***************";
cnn = new SqlConnection(connetionString);
cnn.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO test VALUES @ip", cnn);
cmd.Parameters.AddWithValue("@ip", textBox1.Text);
MessageBox.Show("Check SQL Database");


Что я уже пробовал:

я пытался
SqlCommand cmd = new SqlCommand("INSERT INTO (test) VALUES (@ip)", cnn);
SqlCommand cmd = new SqlCommand("INSERT INTO botnet VALUES @ip", cnn);

Dave Kreskowiak

Никогда не используйте учетную запись SA при подключении к базе данных. Используйте учетную запись, выделенную для приложения, с максимально ограниченными разрешениями, чтобы приложение могло делать то, что ему нужно делать с базой данных.

И в следующий раз, когда вы опубликуете вопрос, вы можете удалить все пароли из того, что вы вставляете. Если вы используете эти пароли где-то еще, я бы посоветовал вам пройти через свои учетные записи и изменить пароли. Сейчас.

Ahmed Adel

я так не думаю об учетной записи , потому что кто-то сделал это с java и использовал учетную запись sa без проблем , и спасибо за помощь о пароле тоже, что пароль только для теста

Dave Kreskowiak

Ну, тогда ты ошибаешься. Вы даете приложению полные права администратора для всего сервера баз данных!!

Напишите свой код плохо, и вы дали приложению разрешения, необходимые для уничтожения всего сервера базы данных и всех данных на нем.

Это не проблема для приложения, поскольку у него будут все необходимые разрешения для выполнения любой работы, но если вы сделаете это в производственной среде в компании, которая имеет даже малейший ключ, вас уволят на месте.

Мало того, вы разместили пароль учетной записи SA на публичном форуме, который может видеть весь мир!!! Я БЫ УВОЛИЛ ТЕБЯ ПРЯМО СЕЙЧАС, ЕСЛИ БЫ БЫЛ ТВОИМ МЕНЕДЖЕРОМ.

2 Ответов

Рейтинг:
2

Ahmed Adel

я попробовал этот код и не помог


Dave Kreskowiak

Вы опубликовали это как ответ на свой собственный вопрос. Если вы хотите кому-то ответить, нажмите кнопку "Задать вопрос или комментарий" под сообщением, на которое вы отвечаете. Таким образом, этот человек получает уведомление о том, что вы ответили.

Рейтинг:
16

ZurdoDev

Вы никогда не выполняете команду. Кроме того, вы должны использовать операторы using для правильного удаления памяти. Что-то вроде этого:

using (SqlConnection sqlCon = new SqlConnection(connectionString){
  sqlCon.Open();
  using (SqlCommand cmd = new SqlCommand ("INSERT INTO test VALUES (@ip)", sqlConn){
    cmd.Parameters.AddWithValue("@ip", textBox1.Text);
    cmd.ExecuteNonQuery();  // this is the line that actually sends it to the database.
  }
}