Я работаю над веб-приложением helpDesk.
Я генерирую уникальный идентификатор_оценки из одной функции. Эти функции могут вызывать 3 пользователя одновременно, обычный пользователь, суперпользователь и администратор
когда какой-либо пользователь нажимает на кнопку «Новая жалоба», я вставляю пустую строку в таблицу жалоб и возвращаю этот уникальный идентификатор жалобы вызывающей стороне.
Но может случиться так, что все 3 пользователя будут вызывать функцию одновременно, и, следовательно, могут возникнуть проблемы при генерации идентификатора жалобы
, так как эта функция используется совместно, могут возникнуть проблемы с генерациейидентификаторЯ только знаю, что это может решить используемые потоки, но как я не знаю, что у меня очень мало знаний о потоках
Функция Get id - это общая функция, которую эта функция вызывает хранимую процедуру.
это создаст проблему, если все 3 типа пользователей будут вызывать функцию одновременно, вот код
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;
}
Полагаю, теперь это будет понятно