从数据库asp.net搜索数据

时间:2017-05-14 17:12:07

标签: asp.net

 protected void Button1_Click(object sender, EventArgs e)
    {
        string db = "Data Source=DESKTOP-R6H3RTP;Initial Catalog=AdmitDB; Integrated Security= true;";
        SqlConnection mycon = new SqlConnection(db);
        mycon.Open();
        String query = "select * from tblPatient where PhoneNo like '"+TextBox1.Text+"%'";
        SqlCommand cmd = new SqlCommand(query, mycon);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        if (cmd.ExecuteNonQuery() > 0)
        {
            lblName.Visible = true;
            lblId.Visible = true;
            lblPNo.Visible = true;
            lblDOB.Visible = true;
            lblName.Text = "PName";
            lblId.Text = "Pid";
            lblPNo.Text = "PhoneNo";
            lblDOB.Text = "PDOB";
        }
        else
        {
            lblNotFound.Visible = true;
        }
    }

我正在从数据库中搜索但是其他语句执行并不知道它为什么不从数据库中获取数据,如果有任何错误请帮助我

2 个答案:

答案 0 :(得分:0)

我认为你不需要if (cmd.ExecuteNonQuery() > 0)。 cmd自动执行。您想要检查数据集中的表。

// check the first table for rows.
if(ds.Tables[0].HasRows())
{
    // success. now you can work with the table.
}

答案 1 :(得分:0)

ExecuteNonQuery方法返回查询修改的行数。由于SELECT查询无法修改数据库中的任何内容,因此您获得0

您应该使用COUNT(*)函数修改查询: String query = "select COUNT(*) from tblPatient where PhoneNo like '"+TextBox1.Text+"%'";

然后您可以使用ExecuteScalar()获取该值: if (cmd.ExecuteScalar() > 0)