MS Access ОБНОВЛЕНИЕ ЗАДАЧА Проблема - PullRequest
0 голосов
/ 19 января 2010

Я пытаюсь обновить свою таблицу из c # ado.net с помощью этой функции. Я использую для процесса обновления хранимую процедуру в базе данных Access. Все отлично работает на стороне MS Access. Предоставление параметров для доступа и его обновление хорошо. Но когда япопробовал это на стороне c # ado.net, не выдавая никакой ошибки, но не обновляя. У меня так много работающих хранимых процедур, как здесь.

Вот мои сторонние коды ado.net;

 public void TakipsizlikGuncelleYeni(int kararNo, int kararYil, int yeniSorNo, int yeniSorYil,int durum)
  {
      con.Open();
      cmd = new OleDbCommand("sp_NewUpdate", con);
      cmd.CommandType = CommandType.StoredProcedure;
      OleDbParameter prmDurum = new OleDbParameter();
      prmDurum.ParameterName = "@durum";
      prmDurum.OleDbType = OleDbType.Integer;
      prmDurum.Value = durum;
      OleDbParameter prmTakipsizlikNo = new OleDbParameter();
      prmTakipsizlikNo.ParameterName = "@takipsizlikno";
      prmTakipsizlikNo.OleDbType = OleDbType.Integer;
      prmTakipsizlikNo.Value = kararNo;
      OleDbParameter prmTakipsizlikYil = new OleDbParameter();
      prmTakipsizlikYil.ParameterName = "@takipsizlikyil";
      prmTakipsizlikYil.OleDbType = OleDbType.Integer;
      prmTakipsizlikYil.Value = kararYil;
      OleDbParameter prmYeniSorYil = new OleDbParameter();
      prmYeniSorYil.ParameterName = "@yenisoryil";
      prmYeniSorYil.OleDbType = OleDbType.Integer;
      prmYeniSorYil.Value = yeniSorYil;
      OleDbParameter prmYeniSorNo = new OleDbParameter();
      prmYeniSorNo.ParameterName = "@yenisorno";
      prmYeniSorNo.OleDbType = OleDbType.Integer;
      prmYeniSorNo.Value = yeniSorNo;
      cmd.Parameters.Add(prmDurum);
      cmd.Parameters.Add(prmTakipsizlikNo);
      cmd.Parameters.Add(prmTakipsizlikYil);
      cmd.Parameters.Add(prmYeniSorNo);
      cmd.Parameters.Add(prmYeniSorYil);



      int sonuc = cmd.ExecuteNonQuery();
      if (sonuc > 0)
          MessageBox.Show("İşlem Tamamlandı", "Kayıt", MessageBoxButtons.OK, MessageBoxIcon.Information);
      con.Close();
  }

и моя Сторона доступа сохранила процедуру;

UPDATE Takipsizlik SET Durum = [@durum], YeniSorusturmaNo = [@yenisorno], YeniSorYil = [@yenisoryil]
WHERE (((TakipsizlikNo)=[@takipsizlikno]) AND ((TakipsizlikYil)=[@takipsizlikyil]));

я не смог увидеть ошибку?Почему эти коды не обновляют мою таблицу?

1 Ответ

1 голос
/ 19 января 2010

Access получает параметры как "?" - они не названы - просто используйте заполнитель "Вопросительный знак".

Они должны быть переданы в том порядке, в котором они указаны в запросе.

Это ограничение OLEDB.

http://www.4guysfromrolla.com/webtech/092601-1.2.shtml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...