PDA

View Full Version : سوال: آپدیت دیتابیس access با گرید ویو



lovee20002002
جمعه 18 مرداد 1392, 10:20 صبح
سلام دوستان من تا حالا با access کار نکردم و فقظ sql کار کردم الان یک دیتابیس اکسس دارم که تمام اطلاعات رو با گرید ویوو تغییر میدم یعنی با خود اینترفیس گرید اول اطلاعات رو لود کردم تو گرید ویو تغییراتی که میخواستم دادم و حالا میخوام سیو کنم تو اکسس کلی سرچ کردم ولی مطلب درسای پیدا نکردم
مشکلی که هست دیتابیس من ممکن هست id تکراری باشه و با یک orgid وقتی باهم چک شن 1 دونه میشه که میشه سیو کرد
من اینو نوشتم برای سیو ولی جواب نداد ممکن هست راهنمایی کنید
cmd = new OleDbCommand("@provider=microsoft.jet.oledb.4.0;" + @"data source=" + Application.StartupPath + "/PDB.mdb;Jet OLEDB:Database Password=123;");
cmd.Connection = con;
for (int i = 0; i < dataGridView3.RowCount; i++)
{

cmd.CommandText = "update Limits set ID='" + dataGridView3.Rows[i].Cells[0].Value + "'" + ",OrganID='" + dataGridView3.Rows[i].Cells[1].Value + "'" + ",MaxPrice='" + dataGridView3.Rows[i].Cells[2].Value + "'" + ",MaxQuantity='" + dataGridView3.Rows[i].Cells[3].Value + "'" + ",Percent='" + dataGridView3.Rows[i].Cells[4].Value + "'" + " where ID='" + dataGridView3.Rows[i].Cells[0].Value + "'" + " where OrganID='" + dataGridView3.Rows[i].Cells[2].Value + "'";

}

MessageBox.Show("update ");

danialafshari
جمعه 18 مرداد 1392, 14:18 عصر
سلام
این تابع فیلدی با نام path رو از جدول path آپدیت می کنه
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"+Environment.CurrentDirectory+@"\db.mdb");
OleDbDataAdapter adap = new OleDbDataAdapter();
DataTable dt = new DataTable();
public void Update(string _path)
{
OleDbCommand cmd = new OleDbCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = @"UPDATE path SET path = @path";
cmd.Parameters.Add("@path", OleDbType.VarChar).Value = _path.Trim().ToString();
cmd.ExecuteNonQuery();
con.Close();
}
موفق باشی

lovee20002002
جمعه 18 مرداد 1392, 21:18 عصر
ممنون متاسفانه مشکلم حل نشد چون بر اساس 2 ایتم باید جستجو بشه کسی از دوستان راهی داره برای مشکلم ممنون میشم

lovee20002002
شنبه 19 مرداد 1392, 11:14 صبح
کسی از دوستان راهی نداره کمی عجله دارم

danialafshari
شنبه 19 مرداد 1392, 11:54 صبح
ممنون متاسفانه مشکلم حل نشد چون بر اساس 2 ایتم باید جستجو بشه کسی از دوستان راهی داره برای مشکلم ممنون میشم

سلام
خب ابتدا جستجوتو انجام بده ! نتیجه روی گریده دیگه؟ بعد بیا اونا رو آپدیت کن
به کد بالا می تونی هر چندتا که می خوای Parameter ارسال کنی و هر چند تا فیلد که بخوای رو آپدیت کنی

lovee20002002
یک شنبه 20 مرداد 1392, 00:53 صبح
ممنون مشکل رو جستجو هست 2 ایتم رو چجوری همزمان جستجو کنم البته یه کاراری انجام میدم ولی چون تعداد داده تغریبا بالای 40000 تا هست سرعت خیلی پایین میاد اگه ممکن هست یک نمومه کد بدید ممنون میشم

danialafshari
یک شنبه 20 مرداد 1392, 01:38 صبح
سلام
خب شرطت رو بر اساس دو مقدار بذار
بهتره قبل از کار با بانک اطلاعاتی با مبحث بانک آشنایی پیدا کنید
SELECT Name, Price, dt
FROM dbo.Table_1
WHERE (Price = 1500000) AND (Name = 'پرینتر')
کوئری بالا بر اساس دو پارامتر Price , Name جستجو می کنه
موفق باشی