PDA

View Full Version : سوال: استفاده و ویرایش بانک اطلاعاتی



Hossis
پنج شنبه 11 تیر 1388, 14:55 عصر
من تو ASP.NET کاملا مبتدی هستم یعنی تا حالا کار نکردم
میخواستم بدونم ممکنه به جای استفاده از آر اس اس ، از بانک اطلاعاتی استفاده کرد
مثلا جدولی داریم با چند فیلد برای دانلود فایل

عنوان (نام نرم افزار)
حجم
توضیحات
آدرس دانلود (لینک)
تعداد دفعات دانلود شده
کرک یا سریال
:ناراحت::اشتباه::چشمک:
بعد می‌خواهم این ها را در یک صفحه سایت لیست کنم مانند صفحه دانلود تبیان (http://www.tebyan.net/download.html)
حالا می تونم این اطلاعات رو مستقیم از بانک اطلاعات بگیرم و در صفحه وارد کنم به طوری که 10 دانلود اخیر در صفحه باز شده و بقیه ده تا ده تا در صفحات دیگر باز شوند درست مثل گوگل؟؟
لطفا راهنمائی کنید.
آیا با بانک اطلاعاتی اکسس هم ممکن است؟؟؟

silverfox
پنج شنبه 11 تیر 1388, 16:26 عصر
اون قسمت قرار دادن در صفحه..10 دانلود اخیر و صفحه بندی رو می شه در asp.net انجام داد یعنی باید این کار رو کرد پس فرقی نمی کنه datasourceت چیه با access هم میشه..اگه به کارت میاد بگو یه نمونه برای سایت خودم درست کردم بران بذارم

Hossis
پنج شنبه 18 تیر 1388, 20:27 عصر
اون قسمت قرار دادن در صفحه..10 دانلود اخیر و صفحه بندی رو می شه در asp.net انجام داد یعنی باید این کار رو کرد پس فرقی نمی کنه datasourceت چیه با access هم میشه..اگه به کارت میاد بگو یه نمونه برای سایت خودم درست کردم بران بذارم

اگه يک نمونه داشته باشم خيلي جلو مي‌افتم
حتما بذار
با تشکر

silverfox
جمعه 19 تیر 1388, 14:11 عصر
توی app_code یه دیتاست(DS) اضافه کنید و یه آداپتور برای جدول epsonphoto بذارید.
این selectش: select * from [epsonphoto]
این whereش: select * from [epsonphoto] where (cat=@cat)
در صفحه من itemها را با QueryString،میگیرم:cat
یه qsهم اضافه می کنم به اسم pnum که شماره صفحه است مثلا صفحه پنجم از 50مورد یافت موجود


protected void Page_Load(object sender, EventArgs e)
{
DSTableAdapters.EPSONphotoTableAdapter ta = new DSTableAdapters.EPSONphotoTableAdapter();

DS.EPSONphotoDataTable dt = new DS.EPSONphotoDataTable();

dt = ta.GetByCat(Convert.ToInt32(Request.QueryString["cat"]));

int pageSize=5, rowCount=dt.Rows.Count, pageCount, currentPage=1;

if(Request.QueryString["pNum"] != null)
currentPage = Convert.ToInt32(Request.QueryString["pNum"]);

if (rowCount % pageSize == 0)
pageCount = rowCount / pageSize;
else
pageCount = (rowCount / pageSize) + 1;


DataTable temp = new DataTable();
foreach (DataColumn var in dt.Columns)
{
temp.Columns.Add(var.Caption);
}

DataRow dr;

for (int i = (currentPage-1)*pageSize; i < currentPage*pageSize && i<rowCount; i++)
{
dr = temp.NewRow();
dr["ID"] = dt.Rows[i]["ID"];
dr["url"] = dt.Rows[i]["url"];
dr["cat"] = dt.Rows[i]["cat"];
dr["description"] = dt.Rows[i]["description"];
dr["توضیحات"] = dt.Rows[i]["توضیحات"];

temp.Rows.Add(dr);
}


Repeater1.DataSource = temp;
Repeater1.DataBind();


HyperLink hl;
hl = new HyperLink();
if (currentPage <= rowCount / pageSize && rowCount / pageSize != 1)
{
hl.Text = "<";
hl.NavigateUrl = "./epsonphotoshow.aspx?cat=" + Request.QueryString["cat"] + "&pNum=" + (currentPage + 1).ToString();
div2.Controls.Add(hl);
div2.Controls.Add(new LiteralControl("&nbsp;"));
}
for (int i = 0; i < pageCount; i++)
{
hl = new HyperLink();
hl.Text = (i + 1).ToString();
if (i+1 == currentPage)
{
hl.Attributes.Add("class", "currentpage");
}
if(i+1!=currentPage)
hl.NavigateUrl = "./epsonphotoshow.aspx?cat=" + Request.QueryString["cat"] + "&pNum=" + (i + 1).ToString();
div2.Controls.Add(hl);
div2.Controls.Add(new LiteralControl("&nbsp;"));
}

hl = new HyperLink();
if (currentPage !=1)
{
hl.Text = ">";
hl.NavigateUrl = "./epsonphotoshow.aspx?cat=" + Request.QueryString["cat"] + "&pNum=" + (currentPage - 1).ToString();
div2.Controls.Add(hl);
}

}

int pagesize تعداد itemهایی است که در هر صفحه نشون میده(اینجا 5 است)


dr = temp.NewRow();
dr["ID"] = dt.Rows[i]["ID"];
dr["url"] = dt.Rows[i]["url"];
dr["cat"] = dt.Rows[i]["cat"];
dr["description"] = dt.Rows[i]["description"];
dr["توضیحات"] = dt.Rows[i]["توضیحات"];

temp.Rows.Add(dr);
اینجا از جدولم با این ستون ها خوندم ریختم توی DataTable به نام temp


Repeater1.DataSource = temp;
Repeater1.DataBind();
اینجا ریختمشون توی repeater
بعدش هم لینک واسشون ساختم شماره صفحه به اضافه صفحه بعد و قبل
اینم کد صفحه ام:


<center>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<img src="<%#Eval("url") %>" alt="<%#Eval("Description") %>" /><br />
<%#Eval("Description") %><br />
<b><%#Eval("توضیحات") %></b>
<br /><br />
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:EPSONphotoDBConnectionString1 %>"
SelectCommand="SELECT [url], [Description], [توضیحات] FROM [EPSONphoto] WHERE ([cat] = @cat)">
<SelectParameters>
<asp:QueryStringParameter Name="cat" QueryStringField="cat" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</center>
<div id="div2" runat="server" style="text-align:center"></div>
دیگه خودتون عوضش کنید مناسب کارتون من اینجا آدرس عکس رو با توضیحاتش می خونم میذارم توی صفحه برای مثال:
لینک (http://www.technologybartar.com/epsonphotoshow.aspx?cat=1)

Hossis
جمعه 19 تیر 1388, 21:40 عصر
خيلي ممنونم
کار من راه افتاد

Hossis
جمعه 19 تیر 1388, 21:42 عصر
يک سؤال ديگه
چطور ميشه سايتي ساخت که بنر و پنل راست و چپ در همه صفحات يکسان باشد
مثلا اگر در صفحه اصلي يک بنر در قسمت بالا قرار دهم در همه صفحات هم بيايد بدون اين که بخوام آن را در يکي يکي صفحات کپي کنم؟؟
در فرانت پيچ همچين چيزي وجود دارد.

milade
جمعه 19 تیر 1388, 21:51 عصر
يک سؤال ديگه
چطور ميشه سايتي ساخت که بنر و پنل راست و چپ در همه صفحات يکسان باشد
مثلا اگر در صفحه اصلي يک بنر در قسمت بالا قرار دهم در همه صفحات هم بيايد بدون اين که بخوام آن را در يکي يکي صفحات کپي کنم؟؟
در فرانت پيچ همچين چيزي وجود دارد.
یک سوال رو چند جا تکرار نمیکنند !