如何使用 asp.net、c#、adonet 检查用户在两个文本字段上输入的数据是否正确
本文关键字:字段 文本 两个 输入 数据 是否 net asp 何使用 adonet 检查 | 更新日期: 2023-09-27 18:36:44
我有两个文本字段emplastname和empnumber。我想从用户那里获取值。并检查数据库值。如果匹配..重定向至下一页。否则阻止他。
我试过这个
protected void btn_Submit_Click(object sender, EventArgs e)
{
if(String.IsNullOrEmpty(txt_LastName.Text) && (String.IsNullOrEmpty(txt_EmployeeNumber.Text)))
{
//Response.Redirect("~/default.aspx");
string connectionString = "Data Source=;initial catalog= ; User ID=sa;Password=;Integrated Security=true;";
string query = "select n.LastName, u.EmployeeNumber from .[dbo].[EPCN_Users] u join [dbo]. [EmployeeNames] n on n.UserID = u.ID where n.LastName = @lastName and u.EmployeeNumber = @employeeNumber ";
// create connection and command
using(SqlConnection cn = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(query, cn))
{
// define parameters and their values
cmd.Parameters.Add("@Lastname", SqlDbType.VarChar, 50).Value = txt
cmd.Parameters.Add("@EmployeeNumber", SqlDbType.VarChar, 50).Value = employeeNumber;
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
我们如何才能更好、更有效地做到这一点?
首先选择记录使用ExecuteReader
,像这样:
using(SqlConnection cn = new SqlConnection(connectionString))
{
using(SqlCommand cmd = new SqlCommand(query, cn))
{
// define parameters and their values
cmd.Parameters.Add("@Lastname", SqlDbType.VarChar, 50).Value = txt
cmd.Parameters.Add("@EmployeeNumber", SqlDbType.VarChar, 50).Value =employeeNumber;
SqlDataReader reader = null;
reader = cmd.ExecuteNonQuery();
DataTable table = new DataTable();
table.Load(reader);
if (!reader.IsClosed)
{
reader.Close();
}
if (table.Rows.Count > 0)
{
// redirect
}
else { //error message}
}
}