2015-12-23 8 views
-1

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

private void nameBindingNavigatorSaveItem_Click(object sender, EventArgs e) 
{ 
    //this.Validate(); 
    //this.nameBindingSource.EndEdit(); 
    //this.tableAdapterManager.UpdateAll(this.cLIENTDB3DataSet); 

    string cmdString = "INSERT INTO Name VALUES (@val1)"; 

    using (connection = new SqlConnection(connectionString)) 
    { 
    using (SqlCommand comm = new SqlCommand(cmdString,connection)) 
    { 
     connection.Open(); 
     comm.Connection = connection; 
     comm.CommandText = cmdString; 
     comm.Parameters.AddWithValue("@val1", nameTextBox.Text); 

     comm.ExecuteNonQuery(); 
    } 
    } 

} 

Спасибо!

+0

не исключение? У вас есть файл базы данных, указанный между вашими проектами? Если да, то каково значение для свойства _Copy для выходного каталога_ – Steve

+2

Я верю, что 'comm.Connection = connection;' и 'comm.CommandText = cmdString;' оба являются избыточными с помощью используемого конструктора SqlCommand. Вызывает ли код выше какие-либо исключения при нажатии кнопки? –

+0

Вы отлаживали ли этот код на самом деле? Ваш оператор sql должен выдать исключение, если оно выполнено вообще. –

ответ

-1

EDIT: Вам нужно выбрать столбец в таблице, в которую вы хотите поместить значение в строку INSERT. В редакции я добавил ColName в строку вставки.

ОРИГИНАЛЬНЫЙ ПОСТ:

Попробуйте Изменение CommandText к CommandString

private void nameBindingNavigatorSaveItem_Click(object sender, EventArgs e) 
{ 
    //this.Validate(); 
    //this.nameBindingSource.EndEdit(); 
    //this.tableAdapterManager.UpdateAll(this.cLIENTDB3DataSet); 

    string cmdString = "INSERT INTO Name (ColName) VALUES (@val1)"; 

    using (connection = new SqlConnection(connectionString)) 
    { 
    using (SqlCommand comm = new SqlCommand(cmdString,connection)) 
    { 
     connection.Open(); 
     comm.Connection = connection; 
     comm.CommandString = cmdString; 
     comm.Parameters.AddWithValue("@val1", nameTextBox.Text); 

     comm.ExecuteNonQuery(); 
    } 
    } 

} 
+0

Я попытался добавить имя столбца в cmdString и до сих пор не повезло. Я не уверен в comm.CommandString, хотя visual studio не дает мне это как вариант, когда я его печатаю, и ближайшим я нашел CommandText – user2874417

+0

В объекте SqlCommand нет свойства CommandString. – Steve

+0

CommandString может не соответствовать правильному синтаксису, но вам не хватает имени столбца таблицы. Попробуйте CommandText с именем столбца. Это должно сделать трюк. –

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