جالبه. ويرايش كردن اطلاعات نيز دقيقاً مانند ثبت كردن اطلاعات و حذف كردن اطلاعات هستش.
تنها تفاوتي كه وجود داره در دستور SQL هستش كه درونش يه شرط قرار ميگيره و اون شرط مقدارش از يه parameter گرفته ميشه و فيلدها يك به يك با Parameter ها مقدار دهي ميشن.(يا به اصطلاح Set ميشن) اين مقدار گرفتن مي تونه مقاديري باشه كه درون يه TextBox هستش. شرط نيز مي تونه يه ID باشه كه مثلاً وقتي كاربر رويه يه ركورد از DataGridview كليك كرد برگشت داده بشه و يا يك عبارت در TextBox و ...
به هر حال من ساده ترينش رو مثال مي زنم و در مرحله بعد به نحو ديگري اين Parameter رو مقدار دهي مي كنيم.
ميام دو تا Refrence براي sqlConnection و sqlCommand و يه ArrayList مي سازم:
در #C:
SqlConnection cnn = newSqlConnection();
SqlCommand cmd = newSqlCommand();
ArrayList arr = newArrayList();
در VB.NET:
Dim cnn AsNew SqlConnection()
Dim cmd AsNew SqlCommand()
Dim arr AsNew ArrayList()
حالا تويه دكمه Button براي مقداردهي ArrayList مي نويسم:
در #C:
arr.Add(textBox1.Text);
arr.Add(textBox2.Text);
arr.Add(textBox3.Text);
.
.
.
در VB.NET:
arr.Add(textBox1.Text)
arr.Add(textBox2.Text)
arr.Add(textBox3.Text)
.
.
.
حالا در ادامه دستور بالا درون Button دستور SQL رو مشخص مي كنيم:
در #C:
cmd.CommandText = "Update set Field1=@Field1,Field2=@Field2 Where ID=@ID";
در VB.NET:
cmd.CommandText = "Update set Field1=@Field1,Field2=@Field2 Where ID=@ID"
بعد Parameter هاي موجود رو مقدار دهي مي كنم:
در #C:
cmd.Parameters.Clear();
cmd.Parameters.Add("@Field1", SqlDbType.NVarChar).Value = arr[0].ToString();
cmd.Parameters.Add("@Field2", SqlDbType.Int).Value =int.Parse ( arr[1].ToString());
cmd.Parameters.Add("@ID", SqlDbType.Int).Value =int.Parse ( arr[2].ToString());
.
.
.
در VB.NET:
cmd.Parameters.Clear();
cmd.Parameters.Add("@Field1", SqlDbType.NVarChar).Value = arr[0].ToString()
cmd.Parameters.Add("@Field2", SqlDbType.Int).Value =int.Parse ( arr[1].ToString())
cmd.Parameters.Add("@ID", SqlDbType.Int).Value =int.Parse ( arr[2].ToString())
.
.
.
حالا بايد اين cmd رو براي يه روال يا متدي كه بحثش رو كردم بفرستم. اما قبل از ارسال بايد اون رو بسازم. اين روال يا متد اين كار رو انجام مي ده:
- اتصال به پايگاه داده
- مشخص كردن آدرس پايگاه داده جهت اجرا دستور SQL
- باز كردن پايگاه داده
- اجراي دستور SQL
- بستن پايگاه داده
در #C:
private void Update(SqlCommand cmd)
{
Connect();
cmd.Connection = cnn;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
}
در VB.NET:
Private Sub Update(ByVal cmd As SqlCommand)
Connect()
cmd.Connection = cnn
cnn.Open()
cmd.ExecuteNonQuery()
cnn.Close()
EndSub
حالا كه متد رو ساختم دوباره بر ميگردم به Button و اين دستور رو به خط آخرش اضافه مي كنم:
در #C:
Update(cmd);
در VB.NET:
Update(cmd)
حالا براي اينكه متوجه بشم كه اين ركورد ويرايش شده ميام LoadAll رو كه در پست هاي قبلي نوشتيم رو بهش اضافه مي كنم:
در #C:
LoadAll();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Barnamenevis";
در VB.NET:
LoadAll()
dataGridView1.DataSource = ds
dataGridView1.DataMember = "Barnamenevis"