这条线的作用是什么?

时间:2015-08-28 12:16:17

标签: c# sql sqldatareader

这是来自使用数据库的注册应用程序的一段代码。因为我可以说我知道OOP的基本原理,我理解这段代码除了第一行。 一个对象(reader)如何成为另一个对象(cmd1)的另一个方法(SqlCommand)的方法(ExecuteReader())? 我希望我能创建一个对象的唯一方法是写这样的:( class object = new class())。 这个解释的链接也会受到欢迎。

using(SqlDataReader reader = cmd1.ExecuteReader())
{
    if (reader.Read())
    {
        reader.Close();
        if (textBox4.Text == textBox5.Text)
        {
            using (SqlCommand cmd = new SqlCommand("UPDATE info SET Password=@Password WHERE Id=@Id AND Password=@Password1", conn))
            {
                cmd.Parameters.AddWithValue("@Password", textBox4.Text);
                cmd.Parameters.AddWithValue("@Id", textBox3.Text);
                cmd.Parameters.AddWithValue("@Password1", textBox2.Text);
                cmd.ExecuteNonQuery();
            }
            MessageBox.Show("Password has been changed");
        }
        else
            MessageBox.Show("The new password doesn't match the one written in repeat the new password blank space ");
    }
    else
        MessageBox.Show("Wrong Id or Password");
}

3 个答案:

答案 0 :(得分:0)

此处方法调用SqlDataReader返回类型reader的对象实例。

然后将对此对象的引用分配给相同类型SqlDataReader的变量{{1}}。

答案 1 :(得分:0)

reader不是方法,它是函数ExecuteReader返回的对象。

ExecuteReader将使用通常的语法new SqlDataReader(...)创建一个对象,然后将其返回。这就是全部!

答案 2 :(得分:0)

想象一下这个方法的大大简化版本做这样的事情:

public SqlDataReader ExecuteReader() 
{
    return new SqlDataReader();
}

显然,实现比这更复杂,但是您可以很容易地看到方法调用如何为您返回一个对象。