Проверка того, существует ли имя пользователя уже в БД
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { SqlConnection conn = new SqlConnection("Data Source=DESKTOP-06QKCFT\\SQLEXPRESS;Initial Catalog=CMS1;Integrated Security=True"); conn.Open(); bool exists = false; string chechuser = "SELECT count(*) FROM [user] where username='" + t_username.Text + "'"; SqlCommand cmd = new SqlCommand(chechuser, conn); cmd.Parameters.AddWithValue("UserName", t_username.Text); exists = (int)cmd.ExecuteScalar() > 0; if (exists) { Response.Write("User Already Exists"); } conn.Close(); } }
Что я уже пробовал:
I have tried it in this way but not working the user still enter to DB: <pre> if (IsPostBack)// to check if the user is already exsist { SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["regstration_ConnectionString"].ConnectionString); conn.Open(); string checkuser = "selecte count(*) from Table where username='" + t_username.Text + "'"; SqlCommand com = new SqlCommand(checkuser, conn); int temp = Convert.ToInt32(com.ExecuteScalar().ToString()); if(temp == 1) { Response.Write("User Already Exists"); } conn.Close(); }
Tomas Takac
Не могли бы вы объяснить, в чем тут проблема?
MuhammadNaamh
этот код не работает я пробовал 2 способа но ничего не вышло :
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
if (IsPostBack)
{
SqlConnection conn = new SqlConnection("источник данных=DESKTOP-06QKCFT\\SQLEXPRESS;начальный каталог=CMS1;Интегрированная безопасность=True");
Коннектикут.Открыть();
боол существует = ложь;
строка chechuser = "SELECT count(*) FROM [user] where username='" + t_username.Текст + "'";
SqlCommand cmd = new SqlCommand(chechuser, conn);
cmd.параметры.AddWithValue("UserName", t_username.Текст);
exists = (int)cmd.ExecuteScalar() > 0;
если (существует)
{
Ответ.Write("Пользователь Уже Существует");
}
Коннектикут.Закрывать();
}
}
Richard MacCutchan
Вы неправильно написали слово "selecte" в своем SQL. Кроме того, почему вы преобразуете целое число в строку только для того, чтобы преобразовать его обратно в целое число?
MuhammadNaamh
нет мой друг во втором запросе это правильно но не работает :
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
if (IsPostBack)
{
SqlConnection conn = new SqlConnection("источник данных=DESKTOP-06QKCFT\\SQLEXPRESS;начальный каталог=CMS1;Интегрированная безопасность=True");
Коннектикут.Открыть();
боол существует = ложь;
строка chechuser = "SELECT count(*) FROM [user] where username='" + t_username.Текст + "'";
SqlCommand cmd = new SqlCommand(chechuser, conn);
cmd.параметры.AddWithValue("UserName", t_username.Текст);
exists = (int)cmd.ExecuteScalar() > 0;
если (существует)
{
Ответ.Write("Пользователь Уже Существует");
}
Коннектикут.Закрывать();
}
}
Richard MacCutchan
Что значит "не работает" означает? Выполняли ли вы какую-либо фактическую отладку, чтобы точно узнать, что происходит при выполнении этого запроса?
MuhammadNaamh
Я имею в виду когда я создаю новый 2 пользователя имеют одно и то же имя но в БД я написал код выше надеюсь попробовать показать сообщение для вставки нового пользователя не существует в БД
вы уловили эту идею ? и это не дает мне никакой ошибки но сообщение не внешний вид это моя проблема
Richard MacCutchan
Да, но вы все еще не объяснили, что происходит, кроме того факта, что ваше предложение SELECT может работать неправильно. Мы не можем догадаться, что происходит, когда вы запускаете этот код.