PDA

View Full Version : خواندن آخرین رکورد بانک



rerzaz
شنبه 02 خرداد 1394, 15:07 عصر
سلام دوستان من یک بانک اکسس دارم که می خوام بعد از اینسرت رکدن در بانک آخرین رکورد رو هم به من نشون بده حالا یا در datgrideview یا در تکس باکس ؟ ممنون میشم کمک کنید. ؟

sg.programmer
شنبه 02 خرداد 1394, 15:14 عصر
یک بار سورت کن براساس ID ویا Date سپس با استفاده از TOP 1 مقدارت را واکشی کن

winner1
شنبه 02 خرداد 1394, 15:27 عصر
SELECT TOP(1) FROM [Table_Name] ORDER BY [Key_Column] DESC

rerzaz
شنبه 02 خرداد 1394, 15:33 عصر
من از این کد استفاده کردم ولی خطا داد
OleDbConnection OleDbConnection1 = new OleDbConnection(ConnectionString); OleDbCommand OleDbCommand1 = new OleDbCommand();
OleDbCommand1.CommandType = CommandType.Text;
OleDbCommand1.CommandText = "SELECT TOP(1) FROM ist1 ORDER BY ID DESC";
OleDbCommand1.Connection = OleDbConnection1;
OleDbDataAdapter adapter = new OleDbDataAdapter(OleDbCommand1);
DataSet DataSet1 = new DataSet();
adapter.Fill(DataSet1, "ist1");
dataGridView1.DataSource = DataSet1.Tables["ist1"];



متن خطا


Additional information: The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

hamid_hr
شنبه 02 خرداد 1394, 15:50 عصر
SELECT TOP(1) ID FROM ist1 ORDER BY ID DESC

rerzaz
شنبه 02 خرداد 1394, 15:54 عصر
نشد بازهم همون خطا رو میده :افسرده:

sg.programmer
شنبه 02 خرداد 1394, 16:16 عصر
دستورت را با کویری آنالایزر تست کن بعد از [ID] استفاده کن ببین چی میشه؟

esagraphic
یک شنبه 03 خرداد 1394, 12:33 عصر
تو ایرور گفته شما در کیوری یکی از SQL Reserved word ها استفاده میکنی که در اکسس نمیشه ازش استفاده کرد لست Reserved word ها را در پائین گذاشتم چک کن ببین از کدامش استفاده کردی
https://support.office.com/en-NZ/article/learn-about-access-reserved-words-and-symbols-ae9d9ada-3255-4b12-91a9-f855bdd9c5a2

rerzaz
دوشنبه 04 خرداد 1394, 15:23 عصر
سلام ممنون از راهنمایی هایی که کردید من از کد زیر استفاده کردم جواب گرفتم :


OleDbCommand1.CommandText = "SELECT ID, cod,datee,times FROM ist1 WHERE ID = ( SELECT Max(ID) FROM ist1 WHERE cod)";

sg.programmer
دوشنبه 04 خرداد 1394, 16:40 عصر
سلام ممنون از راهنمایی هایی که کردید من از کد زیر استفاده کردم جواب گرفتم :


OleDbCommand1.CommandText = "SELECT ID, cod,datee,times FROM ist1 WHERE ID = ( SELECT Max(ID) FROM ist1 WHERE cod)";


از نطر هزینه و سرعت و.. دستور TOP خیلی بهتر هست با این دستورت داری 2 تا سلکت میزنی.
http://www.w3schools.com/sql/sql_top.asp