2015-09-10 3 views
1

Я хотел вставить значения в базу данных, но он не работает, хотя мой код отлично работает, когда он используется как хранимая процедура. Я использую кнопки для сохранения значения. Пожалуйста, сообщите, что случилось с кодом. Его не показывает какую-либо ошибку или исключение, но данные не получает обновления таблицыВставка значения в базу данных

protected void Button1_Click(object sender, EventArgs e) 
{ 
     SqlConnection sqlConnection1 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 
     SqlCommand cmd = new SqlCommand(); 

     cmd.CommandText = "INSERT INTO sales(acnum, scripname, shares_bought) VALUES ('12', 'abcd', '20')"; 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = sqlConnection1; 
     sqlConnection1.Open(); 

     cmd.ExecuteNonQuery(); 
     sqlConnection1.Close();         
} 
+0

Какое у вас вышло? – Arash

+0

Что вы подразумеваете под _not working_? Вы получаете сообщение об исключении или ошибке? Работает ли он на менеджере баз данных? Каковы типы ваших столбцов? Я сильно подозреваю, что вы не должны хранить свои символы '12' и' 20' в качестве символа. Не могли бы вы быть более конкретными? И 'cmd.CommandType = CommandType.Text' является избыточным. По умолчанию это '.Text'. –

+1

нет исключение ... no errors, но не обновлялось в базе данных –

ответ

2

мои столбцы acnum и shares_bought являются «ИНТ» и scripname является «VARCHAR»

Тогда вы будете не нужны одинарные кавычки для целых значений. Используйте его как;

...VALUES (12, 'abcd', 20)" 

Несколько вещей больше;

  • Используйте using заявление утилизировать подключение и команду автоматически вместо вызова метода Close вручную.
  • Не требуется cmd.CommandType = CommandType.Text линия. Это .Textпо умолчанию.

var conStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 
using(var sqlConnection1 = new SqlConnection(conStr)) 
using(var cmd = sqlConnection1.CreateCommand()) 
{ 
    cmd.CommandText = "INSERT INTO sales(acnum, scripname, shares_bought) VALUES (12, 'abcd', 20)"; 
    sqlConnection1.Open(); 
    cmd.ExecuteNonQuery(); 
} 
+1

попробовал еще и сэр, но все еще не работает и удалил строку с типом команд еще не работает –

+0

@Darkknight _not working_ вообще не полезен. Что ты имеешь в виду. Вы получите какую-либо ошибку или что-то еще? Этот запрос работает на вашем сервере sql? –

+1

yes sir этот запрос работает в sql-сервере, но он не работает в моей визуальной студии ... он не показывает никаких ошибок или исключений. –

1

Установить точку останова в коде и посмотреть, если код выполняется. Если вы не знаете, как это сделать, см. here. Поскольку вы не получаете каких-либо исключений в инструкции insert и не отражаетесь в базе данных, либо у вас есть другая строка соединения, либо ваш код не выполняется.

Смежные вопросы