csharp2015
New Member
سلام دوستان
به کد زیر توجه کنید :
کد بالا مربوط به اضافه کردن یک رکورد به بانک اطلاعاتی هس و درست کار می کنه. مشکل من اینه که دقیقا کاربرد کلاس SqlCommandbuilder رو متوجه نشدم. جایی خوندم که این کلاس به طور خودکار دستوارت ثبت و حذف و ویرایش رو تولید میکنه. حالا سوال بنده در باره کد بالا :
این شیء adapter حامل چیه؟ یعنی چی داخلشه که به کلاس builder پاس داده شده؟ کلاس builder از این شیء چه استفاده ای می کنه؟ کلا کلاس builder چطور میفهمه که باید چه دستوری تولید کنه؟ آیا رویدادی چیزی رخ میده؟
به کد زیر توجه کنید :
کد:
private void button1_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection();
connection.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;"
+ @"AttachDbFilename=|DataDirectory|\University.mdf; "
+ "Integrated Security=True;"
+ "Connect Timeout=30";
SqlCommand command = new SqlCommand();
command.CommandText = "SELECT * FROM Students";
command.Connection = connection;
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.Fill(dataset, "Students");
DataRow row = dataset.Tables["Students"].NewRow();
row["FirstName"] = firstNameTextBox.Text;
row["LastName"] = lastNameTextBox.Text;
row["Gender"] = genderTextBox.Text;
row["Age"] = Int32.Parse(ageTextBox.Text);
row["Address"] = addressTextBox.Text;
dataset.Tables["Students"].Rows.Add(row);
try
{
int result = adapter.Update(dataset, "Students");
if (result > 0)
MessageBox.Show("Success!");
else
MessageBox.Show("Failed!");
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
این شیء adapter حامل چیه؟ یعنی چی داخلشه که به کلاس builder پاس داده شده؟ کلاس builder از این شیء چه استفاده ای می کنه؟ کلا کلاس builder چطور میفهمه که باید چه دستوری تولید کنه؟ آیا رویدادی چیزی رخ میده؟