У меня есть эта таблица Профиль, у которого есть поля с user_Id и regNo, и я хочу сначала проверить, если id и электронная почта уже существуют, прежде чем приступать к вставке данных.Проверка наличия id и reg уже существует
В моем коде я могу проверить только одну строку (идентификатор или номер регистра), но если я собираюсь проверить их два, это дает мне ошибку, говоря «Должен объявить скалярную переменную @ Идентификатор пользователя". Я не знаю, является ли это с моим выбором, что это неправильно или что-то в моем коде.
SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True");
con.Open();
SqlCommand cmdd = new SqlCommand("select * from Profile where user_Id = @userid AND RegNo = @reg", con);
SqlParameter param = new SqlParameter();
//SqlParameter param1 = new SqlParameter();
param.ParameterName = "@userid";
param.ParameterName = "@reg";
param.Value = txtid.Text;
param.Value = txtregNo.Text;
cmdd.Parameters.Add(param);
//cmdd.Parameters.Add(param1);
SqlDataReader reader = cmdd.ExecuteReader();
if (reader.HasRows)
{
MessageBox("User Id/Registry Number already exists");
}
else
{
SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True");
SqlCommand cmd = new SqlCommand("qry", con);
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("@id", txtid.Text);
cmd.Parameters.AddWithValue("@regno", txtregNo.Text);
cmd.Parameters.AddWithValue("@name", txtname.Text);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
con.Open();
cmd.ExecuteNonQuery();
MessageBox("successfully saved!");
}
Я использую C# с asp.net.
привет спасибо за ответ. Я попробовал ваше предложение кода.Но он просто проверяет reg no, идентификатор пользователя не проверяется, он сохраняет даже идентификатор уже существует – user2388316
Является ли 'id' установленным как ваш первичный ключ в таблице? –
no, id не является моим основным ключом – user2388316