سلام به همه دوستان من یه سوال داشتم خوشحال میشم اگه راهنمایی کنین.
من یه جدول خبر توی پایگاه داده دارم و یه صفحه خبر، حالا میخوام همیشه 4 تا خبر آخر جدولم توی صفحه نمایش داده شه چطور باید اینکارو بکنم؟
چه کدی باید بنویسم؟
سلام به همه دوستان من یه سوال داشتم خوشحال میشم اگه راهنمایی کنین.
من یه جدول خبر توی پایگاه داده دارم و یه صفحه خبر، حالا میخوام همیشه 4 تا خبر آخر جدولم توی صفحه نمایش داده شه چطور باید اینکارو بکنم؟
چه کدی باید بنویسم؟
سلام
اگه یه فیلد (مثلا id) داشته باشیم که یونیک یا auto number باشه که برای هر رکورد یکی بهش اضافه بشه، می تونیم یه کوئری شبیه کوئری زیر داشته باشیم که ابتدا فیلدها رو بر اساس همون id به صورت نزولی مرتب کنه بعد چهار تای بالایی رو نشون بده:
SELECT TOP 4 * FROM tb1 ORDER BY id DESC
من کد زیر رو نوشتم برای اینکه 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);
}
سلام
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);
این کارو انجام داده بودم ولی بازم آخرین سطر جدول تو 4 تا lable ریخته میشه!
سلام
دوست عزیز خودتون تو چهار تا لیبل پر می کنید!!!!
matn1.Text = "";
while (reader.Read())
matn1.Text += reader.GetString(0) + "\n";
سلام متاسفانه هیچ فرقی نمیکنه با استفاده از
SELECT TOP 4 * FROM tb1 ORDER BY id DESC
4 سطر آخر برگردانده میشه حالا میخوام این 4 سطر رو توی 4 تا lable نشون بدم!
با این کدهایی که شما گفتین توی 4تا lable آخرین سطر رو برمیگردونه
از یه کدی شبیه این استفاده کن:
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 شو برداری و رنگ پس زمینه شو به رنگ فرمت کنی شبیه همون لیبل میشه.
آخه روی هر lable یه کد Jquery نوشتم که باید اجرا شه واس همین نمیشه از giridview استفاده کنم به این خط error میده:
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Application.StartupPath + "\\db.mdb");
زیر StartupPath خط قرمز داره
این کد رو برای اکسس نوشتم، شما کانکشن استرینگ خودتون رو بنویسید، همه OleDb ها رو هم به Sql تبدیل کنید.
این کد رو نوشتم:
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'.