csharp.net
پنج شنبه 25 شهریور 1395, 11:28 صبح
سلام دوستان
به کد زیر توجه کنید :
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);
}
}
کد بالا مربوط به اضافه کردن یک رکورد به بانک اطلاعاتی هس و درست کار می کنه. مشکل من اینه که دقیقا کاربرد کلاس SqlCommandbuilder رو متوجه نشدم. جایی خوندم که این کلاس به طور خودکار دستوارت ثبت و حذف و ویرایش رو تولید میکنه. حالا سوال بنده در باره کد بالا :
این کلاس تو کد بالا از کجا میدونه که باید کد ثبت رو تولید کنه در حالیکه کدی کلاس Command یه دستور Select ه. اصلا کلا گیج شدم. چرا باید دستور سلکت بنویسیم و اونو بدیم به dataadapter و بعد اونو بدیم به SqlCommandbuilder ؟
به کد زیر توجه کنید :
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);
}
}
کد بالا مربوط به اضافه کردن یک رکورد به بانک اطلاعاتی هس و درست کار می کنه. مشکل من اینه که دقیقا کاربرد کلاس SqlCommandbuilder رو متوجه نشدم. جایی خوندم که این کلاس به طور خودکار دستوارت ثبت و حذف و ویرایش رو تولید میکنه. حالا سوال بنده در باره کد بالا :
این کلاس تو کد بالا از کجا میدونه که باید کد ثبت رو تولید کنه در حالیکه کدی کلاس Command یه دستور Select ه. اصلا کلا گیج شدم. چرا باید دستور سلکت بنویسیم و اونو بدیم به dataadapter و بعد اونو بدیم به SqlCommandbuilder ؟