Je travaille sur une application Web helpDesk.Synchronisation dans une application Web
Je suis la génération d'un complaint_id unique, d'une fonction Ces fonctions peuvent être appelées par 3 utilisateurs à temps, utilisateur normal, super-utilisateur et admin
lorsqu'un utilisateur clique sur Nouvelle plainte Je l'insertion d'une ligne vide Réclamer le tableau et renvoyer le numéro unique de réclamation à l'appelant.
Mais il peut arriver que tous les 3 utilisateurs ont appeler la fonction à lui en même temps et problème cause donc amy à générer le l'ID des plaintes
que cette fonction est partagée il peut y avoir problème générer l'identifiant. Je sais que cela peut résoudre des fils utilisés mais comment je ne sais pas que je ai très peu de connaissances sur les sujets
Le Get id fonction est la fonction commune cette fonction appelle une procédure stockée.
problèmecréera pas si les 3 types d'utilisateurs appellent la fonction en même temps est ici le code
public string Getid(AddComplaint_DAO p)
{
SqlConnection con = null;
SqlCommand cmd;
string strConnection;
SqlDataAdapter adpt = null;
try
{
strConnection = ConfigurationManager.AppSettings["Connetionstring2"];
con = new SqlConnection(strConnection);
cmd = new SqlCommand("GetId", con);
cmd.Parameters.AddWithValue("@s_CompDate", SqlDateTime.Null);
cmd.Parameters.AddWithValue("@s_UserId", p.Ename);
cmd.Parameters.AddWithValue("@s_LocationId", SqlString.Null);
cmd.Parameters.AddWithValue("@s_DeptId", SqlString.Null);
cmd.Parameters.AddWithValue("@i_Extension", SqlInt32.Null);
cmd.Parameters.AddWithValue("@s_MainCat", SqlString.Null);
cmd.Parameters.AddWithValue("@s_SubCat", SqlString.Null);
cmd.Parameters.AddWithValue("@s_Item", SqlString.Null);
cmd.Parameters.AddWithValue("@s_Subject", SqlString.Null);
cmd.Parameters.AddWithValue("@s_Description", SqlString.Null);
cmd.CommandType = CommandType.StoredProcedure;
adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
string val = ds.Tables[0].Rows[0][0].ToString();
return val;
}
}
}
catch (SqlException ex)
{
con.Close();
string exep = ex.Message;
return null;
}
return null;
}
Je suppose que ce sera clair maintenant
Vous dites « il peut y avoir problème générer l'identifiant » mais ne donne pas de détails. Quelle sorte de problème? Votre question n'est pas très claire. Veuillez lire ceci: http://tinyurl.com/so-hints – Oded
Post le code de la fonction qui génère l'ID. – Oded
Je ne pense pas que vous ayez besoin de vous inquiéter à ce sujet, utilisez la clé automatique gérée par la base de données, il s'occupera automatiquement des problèmes de concurrence. – kobe