如何检查字符串值 ID NO 是否存在于数据库中, 在我使用此代码检查数据库中是否存在整数值之前,如何更改相同的代码以检查字符串 ID 是否存在:
这是代码:
public int? GetPatientID(int Patient_id)
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
DataTable dt = new DataTable();
SqlParameter[] Param = new SqlParameter[1];
Param[0] = new SqlParameter("@Patient_id", SqlDbType.Int);
Param[0].Value = Patient_id;
dt = DAL.SelectData("GET_PATIENT_IDNO", Param);
DAL.close();
// if there is at least one row
if (dt.Rows.Count > 0)
{
DataRow row = dt.Rows[0];
int? patientIDNumber = row.Field<int>("Patient_id");
return patientIDNumber;
}
// return null otherwise
return null;
}
这是存储过程:
create proc [dbo].[GET_PATIENT_IDNO]
@Patient_id varchar(50)
as
select Patient_id from Patients
where Patient_id = @Patient_id
最后是验证码:
private void textIDNO_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (textIDNO.Text == null || textIDNO.Text == "0" )
{
txtpcfileno.Focus();
}
else
{
var patientIDNumber = order.GetPatientID(Convert.ToInt32(textIDNO.Text)); // int?
bool patientExists = patientIDNumber.HasValue;
if (patientExists == true)
{
MessageBox.Show("id no used before ", "ID exist", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
}
}
请帮助如何更改代码以检查字符串值 id 是否存在我正在使用 c# 和 microsoft sql server ?
答案 0 :(得分:1)
试试这个:
public bool IfPatientExists(string Patient_id)
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
var param= new SqlParameter("@Patient_id", SqlDbType.VarChar,50);
param.Value = Patient_id;
var dt = DAL.SelectData("GET_PATIENT_IDNO", new SqlParameter[]{param});
DAL.close();
return dt.Rows.Count > 0;
}
和 textIDNO_KeyDown 代码
var patientExists = order.IfPatientExists(textIDNO.Text);
if (patientExists)
{
...your code
}
答案 1 :(得分:0)
这种方式也有效:
public string GetPatientID(string Patient_id)
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
DataTable dt = new DataTable();
SqlParameter[] Param = new SqlParameter[1];
Param[0] = new SqlParameter("@Patient_id", SqlDbType.VarChar,50);
Param[0].Value = Patient_id;
dt = DAL.SelectData("GET_PATIENT_IDNO", Param);
DAL.close();
// if there is at least one row
if (dt.Rows.Count > 0)
{
DataRow row = dt.Rows[0];
string patientIDNumber = row.Field<string>("Patient_id");
return patientIDNumber;
}
// return null otherwise
return null;
}
private void textIDNO_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (textIDNO.Text == null || textIDNO.Text == "0" )
{
txtpcfileno.Focus();
}
else
{
var patientIDNumber = order.GetPatientID(textIDNO.Text);
if (patientIDNumber != null && !string.IsNullOrWhiteSpace(patientIDNumber))
{
MessageBox.Show("ID NO used before ", " EXIST ID ", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
}
}