PDA

View Full Version : نمایش 4 سطر آخر جدول در صفحه



yuttrim20
جمعه 19 خرداد 1391, 17:58 عصر
سلام به همه دوستان من یه سوال داشتم خوشحال میشم اگه راهنمایی کنین.
من یه جدول خبر توی پایگاه داده دارم و یه صفحه خبر، حالا میخوام همیشه 4 تا خبر آخر جدولم توی صفحه نمایش داده شه چطور باید اینکارو بکنم؟
چه کدی باید بنویسم؟

Mahmoud Zaad
جمعه 19 خرداد 1391, 18:31 عصر
سلام
اگه یه فیلد (مثلا id) داشته باشیم که یونیک یا auto number باشه که برای هر رکورد یکی بهش اضافه بشه، می تونیم یه کوئری شبیه کوئری زیر داشته باشیم که ابتدا فیلدها رو بر اساس همون id به صورت نزولی مرتب کنه بعد چهار تای بالایی رو نشون بده:
SELECT TOP 4 * FROM tb1 ORDER BY id DESC

yuttrim20
جمعه 19 خرداد 1391, 20:21 عصر
من کد زیر رو نوشتم برای اینکه 4خبر آخر رو توی چهار تا lable نشون بده اما error داره!

SqlConnection conn = new SqlConnection(Connection.GetConnection());
SqlCommand com = new SqlCommand();
SqlDataReader reader;

string query = "SELECT TOP 4 matn FROM [news] ORDER BY id DESC";


com.CommandText = query;
com.Connection = conn;


conn.Open();
reader = com.ExecuteReader();
if (reader.Read())
{
matn1.Text = reader.GetString(0);
matn2.Text = reader.GetString(1);
matn3.Text = reader.GetString(2);
matn4.Text = reader.GetString(3);
}
reader.Close();
وقتی هم کد زیر رو مینویسم فقط خبر آخر توی 4تا lable نوشته میشه!

if (reader.Read())
{
matn1.Text = reader.GetString(0);
matn2.Text = reader.GetString(0);
matn3.Text = reader.GetString(0);
matn4.Text = reader.GetString(0);
}

فرید نجفلو
جمعه 19 خرداد 1391, 23:00 عصر
سلام

reader = com.ExecuteReader();
if (reader.Read())
matn1.Text = reader.GetString(0);
if (reader.Read())
matn2.Text = reader.GetString(0);
if (reader.Read())
matn3.Text = reader.GetString(0);
if (reader.Read())
matn4.Text = reader.GetString(0);

yuttrim20
جمعه 19 خرداد 1391, 23:05 عصر
این کارو انجام داده بودم ولی بازم آخرین سطر جدول تو 4 تا lable ریخته میشه!

فرید نجفلو
جمعه 19 خرداد 1391, 23:20 عصر
سلام
دوست عزیز خودتون تو چهار تا لیبل پر می کنید!!!!
matn1.Text = "";
while (reader.Read())
matn1.Text += reader.GetString(0) + "\n";

yuttrim20
جمعه 19 خرداد 1391, 23:32 عصر
سلام متاسفانه هیچ فرقی نمیکنه با استفاده از

SELECT TOP 4 * FROM tb1 ORDER BY id DESC
4 سطر آخر برگردانده میشه حالا میخوام این 4 سطر رو توی 4 تا lable نشون بدم!
با این کدهایی که شما گفتین توی 4تا lable آخرین سطر رو برمیگردونه

Mahmoud Zaad
شنبه 20 خرداد 1391, 10:27 صبح
از یه کدی شبیه این استفاده کن:


OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\db.mdb");
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter("SELECT TOP 4 name FROM tb1 ORDER BY id DESC", conn);
da.Fill(ds);
label4.Text = ds.Tables[0].Rows[0][0].ToString();
label5.Text = ds.Tables[0].Rows[1][0].ToString();
label6.Text = ds.Tables[0].Rows[2][0].ToString();
label7.Text = ds.Tables[0].Rows[3][0].ToString();

در ضمن چرا از دیتاگرید ویو استفاده نمی کنی؟ می تونی border شو برداری و رنگ پس زمینه شو به رنگ فرمت کنی شبیه همون لیبل میشه.

yuttrim20
شنبه 20 خرداد 1391, 12:57 عصر
آخه روی هر lable یه کد Jquery نوشتم که باید اجرا شه واس همین نمیشه از giridview استفاده کنم به این خط error میده:

OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Application.StartupPath + "\\db.mdb");
زیر StartupPath خط قرمز داره

Mahmoud Zaad
شنبه 20 خرداد 1391, 13:01 عصر
این کد رو برای اکسس نوشتم، شما کانکشن استرینگ خودتون رو بنویسید، همه OleDb ها رو هم به Sql تبدیل کنید.

yuttrim20
شنبه 20 خرداد 1391, 13:15 عصر
این کد رو نوشتم:

SqlConnection conn = new SqlConnection(Connection.GetConnection());
SqlCommand com = new SqlCommand();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("SELECT TOP 4 name FROM tb1 ORDER BY id DESC", conn);
da.Fill(ds);
matn1.Text = ds.Tables[0].Rows[0][0].ToString();
matn2.Text = ds.Tables[0].Rows[1][0].ToString();
matn3.Text = ds.Tables[0].Rows[2][0].ToString();
matn4.Text = ds.Tables[0].Rows[3][0].ToString();
توی خط
da.Fill(ds);
این خطا رو داره:Invalid object name 'tb1'.

Mahmoud Zaad
شنبه 20 خرداد 1391, 13:26 عصر
این کد رو نوشتم:

SqlConnection conn = new SqlConnection(Connection.GetConnection());
SqlCommand com = new SqlCommand();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("SELECT TOP 4 name FROM tb1 ORDER BY id DESC", conn);
da.Fill(ds);
matn1.Text = ds.Tables[0].Rows[0][0].ToString();
matn2.Text = ds.Tables[0].Rows[1][0].ToString();
matn3.Text = ds.Tables[0].Rows[2][0].ToString();
matn4.Text = ds.Tables[0].Rows[3][0].ToString();
توی خط
da.Fill(ds);
این خطا رو داره:Invalid object name 'tb1'.


درسته، فقط کوئری خودتون رو هم بنویسید. خطا میگه این شی(جدول) وجود نداره.