我想插入新用户的记录然后这个或现有呢? [英] I want to insert record like new user then this or existing then this?
问题描述
我试图区分用户和它的任务。
我在c#中制作关于理疗管理系统的Windows应用程序。
我想从db中获取记录。新用户有2个表patient_mstr,现有用户有2个表old_patient。
i想要这样做,如果第二次访问用户,那么记录将从patient_mstr显示,如果访问次数超过第二次,则reacrds将显示在old_patient。
i做了另一个我意识到的逻辑,谢谢你提前。
我尝试了什么:
private void txtsno_KeyDown(object sender,KeyEventArgs e)
{
cn.Open ();
尝试
{
if(e.KeyCode == Keys.Enter)
{
//此查询只检索序列号。
OleDbCommand cmdt = new OleDbCommand(从patient_mstr中选择前1 *,其中Contact_no = @ Contact_no,cn);
cmdt.Parameters.Add(new OleDbParameter(@ Contact_no,txtsno.Text));
//在userexist中存储值变量。
int UserExist =(int)cmdt.ExecuteScalar();
//这个访问号码的查询。
OleDbCommand vst = new OleDbCommand(从patient_mstr中选择count(*),其中Contact_no = @ Contact_no,cn);
vst.Parameters.Add(new OleDbParameter(@ Contact_no,txtsno.Text));
//在rec变量中存储值。
int rec =(int)vst.ExecuteScalar();
// OleDbDataReader dr2 = cmdt.ExecuteReader();
if(UserExist == 1)
{
// if(e.KeyCode == Keys.Enter)
// {
OleDbCommand cmd = new OleDbCommand(select P_name,E_date,Main_pain,Sub_pain,V_charge ,付费,来自patient_mstr的描述,其中康泰克t_no = @ Contact_no,cn);
cmd.Parameters.Add(new OleDbParameter(@ Contact_no,txtsno.Text));
// cn.Open ();
cmd.ExecuteNonQuery();
OleDbDataReader dr = cmd.ExecuteReader();
if(dr.Read())
{
lblapnm.Text =(string)dr [P_name];
lblapain.Text =(string)dr [Main_pain ] +,+(字符串)dr [Sub_pain];
lbld.Text =(string)dr [Description];
// lblcrgh .Text = dr [V_charge]。ToString();
//lblpdinf.Text = dr [Paid]。ToString();
lbladt.Text = dr [E_date]。ToString();
// pb _old.Image =(Image)dr [Image];
}
dr.Close();
}
else if(UserExist> 1)
{
OleDbCommand cmd = new OleDbCommand(选择P_name,E_date,疼痛,描述,来自old_patient的Image_new,其中Contact_no = @ Contact_no,cn);
cmd.Parameters.Add(new OleDbParameter(@ Contact_no,txtsno.Text));
// cn.Open();
cmd.ExecuteNonQuery();
OleDbDataReader dr = cmd.ExecuteReader();
if(dr.Read())
{
lblapnm.Text =(string)dr [P_name];
lblapain.Text =(string)dr [Main_pain] +,+(string)dr [Sub_pain];
lbld.Text =(string)dr [Description];
//lblcrgh.Text = dr [Total_charge]。ToString ();
//lblpdinf.Text = dr [ Total_paid]。ToString();
lbladt.Text = dr [E_date]。ToString();
//pb_old.Image =(Image)dr [ Image_new];
}
dr.Close();
lbldtr.Text = rec。 ToString();
}
}
//cn.Close();
}
catch(例外c)
{
MessageBox.Show(c.Message);
}
cn.Close();
}
我解决了先生,我的整个逻辑是完美的但是,我只是更少的错误理解创造这个问题,我做了
oledbcommand cmdt = new oledbcommand(select count (*)来自old_patient,其中Contact_no = @ Contact_no,cn);
只是表名和总数没有。的记录。这是我的错误。
关于这个
i也改变了状态。
if(UserExist == 0)这意味着这是第二次输入患者记录,我从patient_mstr表中获取记录。
否则如果(UserExist!= 0)表示有记录,那么我从old_mstr表中获取记录。
并且它起作用。
i try to differentiate the user and it's task.
i make windows app in c# about physiotherapy management system.
i want to fetch records from db . there are 2 tables patient_mstr for new user and old_patient for existing user.
i want to do that if user is visited 2nd time then records will be shown from patient_mstr and if visted more than 2nd time then reocrds will be shown from old_patient.
i did another logic which i realize, thank u in advance.
What I have tried:
private void txtsno_KeyDown(object sender, KeyEventArgs e)
{
cn.Open();
try
{
if (e.KeyCode == Keys.Enter)
{
// this query for retrieve just serial number.
OleDbCommand cmdt = new OleDbCommand("select top 1 * from patient_mstr where Contact_no=@Contact_no", cn);
cmdt.Parameters.Add(new OleDbParameter("@Contact_no", txtsno.Text));
// store value in userexist variable.
int UserExist = (int)cmdt.ExecuteScalar();
// this query for visiting numbers.
OleDbCommand vst = new OleDbCommand("select count(*) from patient_mstr where Contact_no=@Contact_no",cn);
vst.Parameters.Add(new OleDbParameter("@Contact_no",txtsno.Text));
// store value in rec variable.
int rec = (int)vst.ExecuteScalar();
//OleDbDataReader dr2 = cmdt.ExecuteReader();
if (UserExist == 1)
{
//if (e.KeyCode == Keys.Enter)
//{
OleDbCommand cmd = new OleDbCommand("select P_name,E_date,Main_pain,Sub_pain,V_charge,Paid,Description from patient_mstr where Contact_no=@Contact_no", cn);
cmd.Parameters.Add(new OleDbParameter("@Contact_no", txtsno.Text));
// cn.Open();
cmd.ExecuteNonQuery();
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
lblapnm.Text = (string)dr["P_name"];
lblapain.Text = (string)dr["Main_pain"] + " , " + (string)dr["Sub_pain"];
lbld.Text = (string)dr["Description"];
//lblcrgh.Text = dr["V_charge"].ToString();
//lblpdinf.Text = dr["Paid"].ToString();
lbladt.Text = dr["E_date"].ToString();
//pb_old.Image = (Image)dr["Image"];
}
dr.Close();
}
else if (UserExist > 1)
{
OleDbCommand cmd = new OleDbCommand("select P_name,E_date,Pain,Description,Image_new from old_patient where Contact_no=@Contact_no", cn);
cmd.Parameters.Add(new OleDbParameter("@Contact_no", txtsno.Text));
// cn.Open();
cmd.ExecuteNonQuery();
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
lblapnm.Text = (string)dr["P_name"];
lblapain.Text = (string)dr["Main_pain"] + " , " + (string)dr["Sub_pain"];
lbld.Text = (string)dr["Description"];
//lblcrgh.Text = dr["Total_charge"].ToString();
//lblpdinf.Text = dr["Total_paid"].ToString();
lbladt.Text = dr["E_date"].ToString();
//pb_old.Image = (Image)dr["Image_new"];
}
dr.Close();
lbldtr.Text = rec.ToString();
}
}
//cn.Close();
}
catch (Exception c)
{
MessageBox.Show(c.Message);
}
cn.Close();
}
i solved it sir, my whole logic is perfect but, i m just less mistake of understand that create this problem, i did
oledbcommand cmdt = new oledbcommand("select count(*) from old_patient where Contact_no=@Contact_no",cn);
just table name and total no. of records. this is my mistake.
and regarding this
i changed in of condition too.
if(UserExist == 0) that means this is 2nd time patient record is enter so, that i fetch record from patient_mstr table.
else if(UserExist != 0) that means there is record then i fetch record from old_mstr table.
and it's work.
这篇关于我想插入新用户的记录然后这个或现有呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!