satyanand mishra Ответов: 1

Как я могу объявить переменную scaler


SqlConnection con = new SqlConnection(@"Data Source=SATYA\SAT;Initial Catalog=record;Integrated Security=True");
                SqlDataAdapter da = new SqlDataAdapter("update  employee set empName=@Name,empContact=@Contact,EmpAddress=@address where empId=@ID", con);
                DataSet ds = new DataSet();
                da.Fill(ds);

                da.UpdateCommand.Parameters.Add("@ID", SqlDbType.Int).Value = emp.Id;
                da.UpdateCommand.Parameters.Add("@Name", SqlDbType.VarChar).Value = emp.Name.ToString();
                da.UpdateCommand.Parameters.Add("@Contact", SqlDbType.Int).Value = emp.Contact;
                da.UpdateCommand.Parameters.Add("@address", SqlDbType.Int).Value = emp.Address;


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

Это исключение из правил "
Must declare the scalar variable "@Name"

1 Ответов

Рейтинг:
0

OriginalGriff

Посмотри на свой код.
Вы выполняете команду на DataAdapter перед добавлением параметров.
И вы пытаетесь заполнить набор данных с помощью команды UPDATE, что странно и вряд ли сработает.
Вместо этого используйте команду:

using (SqlConnection con = new SqlConnection(strConnect))
   {
   con.Open();
   using (SqlCommand cmd = new SqlCommand("UPDATE employee SET empName=@Name,empContact=@Contact,EmpAddress=@address WHERE empId=@ID", con);
      {
      cmd.Parameters.AddWithValue("@ID", emp.Id);
      cmd.Parameters.AddWithValue("@Name", emp.Name);
      cmd.Parameters.AddWithValue("@Contact", emp.Contact);
      cmd.Parameters.AddWithValue("@address", emp.Address);
      cmd.ExecuteNonQuery();
      }
   }
И не надо жестко кодировать строки подключения! Всегда храните их в конфигурационном файле, чтобы их можно было изменить только в одном месте.


satyanand mishra

Я знаю это,но я хочу сделать этот SqlAdapter через команду Update я не хочу открывать свое соединение, не могли бы вы объяснить, почему это дает исключение.