2015-03-16 3 views
1

Для того, чтобы обновить Customer/PartyId I предлагает пользователю заполнить CP_id и другие элементы формы, а затем я обновить данные в базе данных на основе CP_id:System.Data.SqlClient.SqlException происходит для обновления таблицы

if (CP_id.Text != " ") 
{ 
    string cpid=CP_id.Text; 
    string query = "Update tbl_partyinfo set Name = @Name, Addrss = @Addrss, Cntct_No = @Cntct_No where CP_id = cpid"; 

    using (SqlConnection connection1 = new SqlConnection(conn)) 
    { 
     connection1.Open(); 

     using (SqlCommand insertCommand = new SqlCommand(query, connection1)) 
     { 
      insertCommand.Parameters.Add("@Name", SqlDbType.VarChar).Value = txtname.Text; 
      insertCommand.Parameters.Add("@Addrss", SqlDbType.VarChar).Value = txtAddrss.Text; 
      insertCommand.Parameters.Add("@Cntct_No", SqlDbType.VarChar).Value = txtcontact.Text; 

      //make sure you open and close(after executing) the connection 
      var rowsaffected = insertCommand.ExecuteNonQuery(); 

      connection1.Close(); 

      MessageBox.Show("Id no."+CP_id.Text +" Updated."); 
     } 
    } 
} 
else 
{ 
    MessageBox.Show("Please identify Id before updating"); 
} 

но я получаю сообщение об ошибке:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

Additional information: Invalid column name 'cpid'

Я получаю эту ошибку, но не имеют какого-либо метода замены, чтобы получить такую ​​функциональность.

+0

Мне сложно представить, как вы вставляете 3 параметра с помощью правильной привязки и один, предполагая, что «это просто магически работает». Почему вы предполагаете, что параметр cpid работает совершенно иначе, чем другие три? – nvoigt

+0

@nvoigt Обновлен код вопроса! Но теперь он обновляет все строки таблицы –

+0

Пожалуйста, не изменяйте свой вопрос после получения ответа. Если у вас есть новый вопрос, * задайте новый вопрос *. – svick

ответ

2

CP_id=cpid

Это должно быть другим связанным paramameter так: [email protected] и вам нужно еще одну строки, добавив этот параметр и его значение. Вы уже сделали это для остальных трех, это не может быть слишком сложно сделать это для четвертого.

+0

Я уже пробовал, прежде чем публиковать его на SO, но затрагивал все строки, другое бедствие –

+0

«CP_id = @CP_id» это действительно плохая практика. Если вы пропустите ни одного @, вы получите действительное заявление. Вы ошибаетесь, если ошибаетесь. Не называйте переменные такими, как поля вашей базы данных. – nvoigt

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