2010-01-19 4 views
0

J'essaye de mettre à jour ma table de C# ado.net avec cette fonction. J'utilise pour le processus de mise à jour stocké prosedure dans l'accès db. Tout fonctionnant bien dans MS Access side.Giving paramètres pour accéder et sa mise à jour Eh bien, quand j'ai essayé cela dans le côté C# ado.net ne donne pas d'erreur, mais ce n'est pas la mise à jour.J'ai eu beaucoup de travail procédure stockée, comme ça.MS Access UPDATE QUERY Problème

Voici mes codes secondaires 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(); 
    } 

et ma procédure de sauvegarde côté accès;

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

Je n'ai vu aucune erreur? Pourquoi ces codes ne mettent pas à jour ma table?

Répondre

1

L'accès reçoit les paramètres comme "?" - ils ne sont pas nommés - il suffit d'utiliser un espace réservé "point d'interrogation".

Elles doivent être transmises dans l'ordre exact où elles apparaissent dans la requête.

Ceci est une limitation de OLEDB.

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

+0

homme :) Thanx résoudre ce problème est « Ils doivent être passés dans l'ordre exact, ils apparaissent dans la requête. » yr cool. –