我想插入新用户的记录然后这个或现有呢? [英] I want to insert record like new user then this or existing then this?

查看:72
本文介绍了我想插入新用户的记录然后这个或现有呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图区分用户和它的任务。

我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆