0 امتیاز

با سلام خدمت دوستان.

توي سايت درسي را كه در ارتباط با DataAdapter بود را مطالعه كردم و فهميدم كه چگونه ميشه با استفاده از اين دستور يك جدول ديتابيس را در يك ديتاست ذخيره كرد.

اگر ميشه دوستان درباره تغيير داده هاي يك جدول در ديتابيس با استفاده از DataAdapter‌ توضيح بدهند و حدالمقدور يك مثال هم بزنند.

 

ممنون

بسته شده

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

سلام دوست عزیز

DataAdapter یک کلاس هستش نه یک دستور

و کارش واکشی اطلاعات از بانک میباشد و بیشتر برای جست و جو و نمایش اطلاعات کاربرد داره

برای ویرایش اطلاعات ازکلاس SqlCommand استفاده میشه

توی کد های زیر من برای ویرایش اطلاعات جدولم از SqlCommand استفاده کردم

که البته دستورات SQL رو توسط Stored Procedure توی خود SQL Server نوشتم

SqlCommand cmds = new SqlCommand("Update_che", conns);
                cmds.CommandType = CommandType.StoredProcedure;
                cmds.Parameters.AddWithValue("@names", textBox1.Text);
                cmds.Parameters.AddWithValue("@tels", textBox2.Text);
                cmds.Parameters.AddWithValue("@prices",txtProNet1.TextValue.ToString());
                cmds.Parameters.AddWithValue("@serial", textBox4.Text);
                cmds.Parameters.AddWithValue("@banks", textBox5.Text);
                cmds.Parameters.AddWithValue("@date_pay", dateTimePickerX1.Text);
                cmds.Parameters.AddWithValue("@dare_re", dateTimePickerX2.Text);
                cmds.Parameters.AddWithValue("@disc", textBox8.Text);
                cmds.Parameters.AddWithValue("@idha", label9.Text);
                conns.Open();
                cmds.ExecuteNonQuery();
                conns.Close();

 

ممنون از توضيحاتتون. حالا چند تا نكته هست كه خواستم مطمين بشم.

1- من از اكسس استفاده مي كنم. پس بايد بجاي SqlCommand از OleDbCommand استفاده كنم. درسته؟مثل كد زير

using (OleDbConnection conns = new OleDbConnection(Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccessFile.accdb; Persist Security Info=False;))
{
    conns.Open();
	SqlCommand cmds = new SqlCommand("Update_che", conns);
                cmds.CommandType = CommandType.StoredProcedure;
                cmds.Parameters.AddWithValue("@names", textBox1.Text);
                cmds.Parameters.AddWithValue("@tels", textBox2.Text);
                cmds.Parameters.AddWithValue("@prices",txtProNet1.TextValue.ToString());
                cmds.Parameters.AddWithValue("@serial", textBox4.Text);
                cmds.Parameters.AddWithValue("@banks", textBox5.Text);
                cmds.Parameters.AddWithValue("@date_pay", dateTimePickerX1.Text);
                cmds.Parameters.AddWithValue("@dare_re", dateTimePickerX2.Text);
                cmds.Parameters.AddWithValue("@disc", textBox8.Text);
                cmds.Parameters.AddWithValue("@idha", label9.Text);
                conns.Open();
                cmds.ExecuteNonQuery();
                conns.Close();
}



2- اگر CommandType را مشخص نكنيم چه اتفاقي ميافته؟ آيا بصورت پيشفرض مقداري را در نظر ميگيره؟

 

ممنون

ویرایش شده توسط
توسط (245 امتیاز) 1 14

بسیار عالی...

موقع استفاده از اکسس نیاز نیست از coomand type استفاده کنید... به شکل زیر عمل کنید

وبه جای sqlcommnad از oledbcommand استفاده کنید

using (OleDbConnection conns = new OleDbConnection(Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccessFile.accdb; Persist Security Info=False;))
{
    conns.Open();
    SqlCommand cmds = new SqlCommand("توی این قسمت کوئری و پارامتر ها رو وارد کنید", conns);
               
                cmds.Parameters.AddWithValue("@names", textBox1.Text);
                cmds.Parameters.AddWithValue("@tels", textBox2.Text);
                cmds.Parameters.AddWithValue("@prices",txtProNet1.TextValue.ToString());
                cmds.Parameters.AddWithValue("@serial", textBox4.Text);
                cmds.Parameters.AddWithValue("@banks", textBox5.Text);
                cmds.Parameters.AddWithValue("@date_pay", dateTimePickerX1.Text);
                cmds.Parameters.AddWithValue("@dare_re", dateTimePickerX2.Text);
                cmds.Parameters.AddWithValue("@disc", textBox8.Text);
                cmds.Parameters.AddWithValue("@idha", label9.Text);
                conns.Open();
                cmds.ExecuteNonQuery();
                conns.Close();
}

 

توسط (477 امتیاز) 5 20 56
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...