这是来自使用数据库的注册应用程序的一段代码。因为我可以说我知道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");
}
答案 0 :(得分:0)
此处方法调用SqlDataReader
返回类型reader
的对象实例。
然后将对此对象的引用分配给相同类型SqlDataReader
的变量{{1}}。
答案 1 :(得分:0)
reader
不是方法,它是函数ExecuteReader
返回的对象。
ExecuteReader
将使用通常的语法new SqlDataReader(...)
创建一个对象,然后将其返回。这就是全部!
答案 2 :(得分:0)
想象一下这个方法的大大简化版本做这样的事情:
public SqlDataReader ExecuteReader()
{
return new SqlDataReader();
}
显然,实现比这更复杂,但是您可以很容易地看到方法调用如何为您返回一个对象。