Member 11572517 Ответов: 1

Я хочу вставить запись как новый пользователь, а затем этот или существующий, а затем этот?


я стараюсь различать пользователя и его задачу.
я делаю приложение windows на c# о системе управления физиотерапией.
я хочу получить записи из БД . есть 2 таблицы patient_mstr для нового пользователя и old_patient для существующего пользователя.

я хочу сделать это, если пользователь посещается 2-й раз, то записи будут показаны из patient_mstr, а если visted больше 2-го раза, то reocrds будут показаны из old_patient.

я сделал еще одну логику, которую я понимаю, заранее благодарю вас.

Что я уже пробовал:

private void txtsno_KeyDown(отправитель объекта, KeyEventArgs e)
{
спицы.Открыть();
пробовать
{

если (электронная.Данные KeyCode == Ключи.Входить)
{
// этот запрос для получения только серийного номера.
OleDbCommand cmdt = new OleDbCommand ("select top 1 * from patient_mstr where Contact_no=@Contact_no", cn);
cmdt.Параметры.Добавить (новый OleDbParameter ("@Contact_no", txtsno. Text));
// хранить значение в переменной userexist.
int UserExist = (int)cmdt.Executescalar так();
// этот запрос для посещающих номеров.
Объект oledbcommand вст = новый объект oledbcommand("выбрать количество(*) из patient_mstr где Contact_no=@Contact_no",СП);
вст.Параметры.Добавить (новый OleDbParameter ("@Contact_no", txtsno. Text));

// хранить значение в переменной rec.
int rec = (int)vst.Executescalar так();
//OleDbDataReader dr2 = cmdt.Метода executereader();
if (UserExist == 1)
{

//if (e. KeyCode = = ключи.Входить)
//{
Объект oledbcommand команду cmd = новый объект oledbcommand("выберите P_name,E_date,Main_pain,Sub_pain,V_charge,заплатил,описание от patient_mstr где Contact_no=@Contact_no", СП);
УМК.Параметры.Добавить (новый OleDbParameter ("@Contact_no", txtsno. Text));
// СN.Открыть();
УМК.Метод executenonquery();
OleDbDataReader dr = cmd.Метода executereader();
если (dr. Read())
{
lblapnm.Text = (string)dr["P_name"];
lblapain.Текст = (строки)доктор["Main_pain"] + " , " + (стринг)д-р["Sub_pain"];
lbld.Text = (string)dr ["описание"];
//lblcrgh.Текст = доктор["V_charge"].Метод toString();
//lblpdinf.Text = dr ["оплачено"].Метод toString();
лбладт.Текст = доктор["E_date"].Метод toString();
//pb_old.Изображение = (изображение)доктор["изображения"];

}
др.Рядом();
}
else if (UserExist > 1)
{
Объект oledbcommand команду cmd = новый объект oledbcommand("выберите P_name,E_date,боль,описание,Image_new от old_patient где Contact_no=@Contact_no", СП);
УМК.Параметры.Добавить (новый OleDbParameter ("@Contact_no", txtsno. Text));
// СN.Открыть();
УМК.Метод executenonquery();
OleDbDataReader dr = cmd.Метода executereader();
если (dr. Read())
{
lblapnm.Text = (string)dr["P_name"];
lblapain.Текст = (строки)доктор["Main_pain"] + " , " + (стринг)д-р["Sub_pain"];
lbld.Text = (string)dr ["описание"];
//lblcrgh.Текст = доктор["Total_charge"].Метод toString();
//lblpdinf.Текст = доктор["Total_paid"].Метод toString();
лбладт.Текст = доктор["E_date"].Метод toString();
//pb_old.Изображение = (изображение)доктор["Image_new"];

}
др.Рядом();
lbldtr.Текст = rec.Метод toString();
}
}

//СN.Рядом();
}


catch (исключение c)
{
Ящик для сообщений.Показать (c. сообщение);
}
спицы.Рядом();
}

OriginalGriff

И что?
В чем твоя проблема?
Что это делает, чего вы не ожидали, или не делаете, что вы сделали?

Member 11572517

Извините, сэр, я сделал выше логики, которая не сработала должным образом.

Patrice T

"не сработало должным образом" - это не информативно.

Member 11572517

хорошо, сэр, я очень беден в этих вещах.

Patrice T

Читать это:
Задавать вопросы-это навык[^]

Karthik_Mahalingam

почему вы используете событие txtsno_KeyDown?
это вызовет событие несколько раз, и вы используете сложные объекты внутри.

Member 11572517

хорошо, я научусь этому.

Member 11572517

потому что я хочу ответить как можно быстрее.

Karthik_Mahalingam

о, тогда ладно.

1 Ответов

Рейтинг:
9

Member 11572517

я решил это, сэр, вся моя логика совершенна, но я просто меньше ошибаюсь в понимании того, что создаю эту проблему, я так и сделал

объект oledbcommand cmdt по = новый объект oledbcommand("выбрать количество(*) из old_patient где Contact_no=@Contact_no",СП);


просто имя таблицы и общее количество записей. это моя ошибка.

и относительно этого
я тоже изменился в своем состоянии.

если (UserExist == 0) это означает, что это 2-й раз, когда запись пациента вводится так, что я извлекаю запись из таблицы patient_mstr.
иначе если (UserExist != 0) это означает, что есть запись, то я извлекаю запись из таблицы old_mstr.

и это работа.


Karthik_Mahalingam

хорошо, что вы опубликовали решение и закрыли этот пост.