PDA

View Full Version : سوال: نحوه مقدار دهی عکس از طریق دیتابیس



bahman1366
یک شنبه 27 مهر 1393, 23:02 عصر
من تو یه صفحه ام چند تا image گذاشتم که میخوام مقدارش رو از دیتابیس بخونه,منظورم اینه که آدرس عکس رو تو دیتابیس ذخیره کردم حالا میخوام این آدرس رو به عکسم بدم ولی نمیدونم چه جوری باید اینکار رو بکنم.اگه کسی بلده لطفا راهنماییم کنه ممنون.
مثلایه img گذاشتم که فعلا دستی دادم آدرس رو :
<"img src="../images/baner/myslide3.gif" />
به جای اینکه آدرس رو دستی بدم میخوام از دیتابیس بخونه.

mamad_za
دوشنبه 28 مهر 1393, 10:50 صبح
protected void Page_Load(object sender, EventArgs e)
{
using(SqlConnection con=new SqlConnection(connectionstring))
{
using (SqlCommand cmd = new SqlCommand("Select top(7) [pic_id],[title],[PicAddress] FROM image ORDER BY pic_id DESC",con))
{
using(SqlDataAdapter sda=new SqlDataAdapter(cmd))
{
con.Open();
DataTable dt = new DataTable();
sda.Fill(dt);
ArrayList values = new ArrayList();
if (dt.Rows.Count>0)
{
for (int i=0; i <dt.Rows.Count; i++)
{
string picaddress = dt.Rows[i]["PicAddress"].ToString().Replace("~","..");
string title = dt.Rows[i]["title"].ToString();
values.Add(new dataimg(picaddress,title));
rpt1.DataSource = values;
rpt1.DataBind();
}
}
}
}

<asp:Repeater ID="rpt1" runat="server">
<ItemTemplate>
<div class="car-list" id="car-list">
<div class="view">
<a href="#"><asp:Image ID="img1" src='<%#Eval("address")%>' alt='<%#Eval("onvan")%>' runat="server" width="217" height="139"></asp:Image></a>
</div>
</div>

</ItemTemplate>
</asp:Repeater>

bahman1366
دوشنبه 28 مهر 1393, 21:14 عصر
protected void Page_Load(object sender, EventArgs e)
{
using(SqlConnection con=new SqlConnection(connectionstring))
{
using (SqlCommand cmd = new SqlCommand("Select top(7) [pic_id],[title],[PicAddress] FROM image ORDER BY pic_id DESC",con))
{
using(SqlDataAdapter sda=new SqlDataAdapter(cmd))
{
con.Open();
DataTable dt = new DataTable();
sda.Fill(dt);
ArrayList values = new ArrayList();
if (dt.Rows.Count>0)
{
for (int i=0; i <dt.Rows.Count; i++)
{
string picaddress = dt.Rows[i]["PicAddress"].ToString().Replace("~","..");
string title = dt.Rows[i]["title"].ToString();
values.Add(new dataimg(picaddress,title));
rpt1.DataSource = values;
rpt1.DataBind();
}
}
}
}

<asp:Repeater ID="rpt1" runat="server">
<ItemTemplate>
<div class="car-list" id="car-list">
<div class="view">
<a href="#"><asp:Image ID="img1" src='<%#Eval("address")%>' alt='<%#Eval("onvan")%>' runat="server" width="217" height="139"></asp:Image></a>
</div>
</div>

</ItemTemplate>
</asp:Repeater>

ممنون از اینکه جواب دادین, فقط من این قسمت کد را متوجه نشدم
values.Add(new dataimg(picaddress,title));
به dataimg خطا میگیره,کتابخونه داره یا تعریف کردین؟
در ضمن تو این قسمت هم <asp:Image ID="img1" src='<%#Eval("address")%>' alt='<%#Eval("onvan")%>' runat="server" width="217" height="139"> مقادیر address و onvan اسم فیلدها هستش؟

mamad_za
دوشنبه 28 مهر 1393, 21:43 عصر
در ضمن این رو هم باید اضافه کنید
public class dataimg
{
private string address;
private string onvan;
public dataimg(string address,string onvan)
{
this.address = address;
this.onvan = onvan;
}
public string Address
{
get { return address; }
}
public string Onvan
{
get { return onvan; }
}

}

bahman1366
سه شنبه 29 مهر 1393, 21:50 عصر
در ضمن این رو هم باید اضافه کنید
public class dataimg
{
private string address;
private string onvan;
public dataimg(string address,string onvan)
{
this.address = address;
this.onvan = onvan;
}
public string Address
{
get { return address; }
}
public string Onvan
{
get { return onvan; }
}

}

راهی هست که بشه بدون استفاده از repeater مقادیر عکس رو از دیتابیس بهش داد؟ چون من فقط میخوام تگ img رو بزارم.البته یه راهی هست ولی چون تعداد تگ image من بیشتر هست فکر میکنم سرعت سایت رو پایین میاره.مثلا داخل Global.asax به تعداد تگ ایمیج application تعرف میکنی بعد مسیر عکس رو از دیتابیس میخونی و تو application ذخیره میکنی,بعد تو قسمتی که تگ ایمیج رو تعریف شده مقدار application رو قرار میدی.
background-image:url(<%=Application["header"] %>);

mamad_za
چهارشنبه 30 مهر 1393, 10:38 صبح
خوب شما می تونید از grid view هم استفاده کنید ، این روشی هم که میگید میشه اما خوب شما به یک تکرار شونده نیاز دارید دیگه ، اگه تعداد عکس شما بیشتر از 1 بشه چطوری می خواین تگ img اضافه کنید؟

bahman1366
چهارشنبه 30 مهر 1393, 16:56 عصر
خوب شما می تونید از grid view هم استفاده کنید ، این روشی هم که میگید میشه اما خوب شما به یک تکرار شونده نیاز دارید دیگه ، اگه تعداد عکس شما بیشتر از 1 بشه چطوری می خواین تگ img اضافه کنید؟

خوب من یه صفحه دارم که توش یه سری عکسها رو بصورت اسلاید نمایش میدم ولی میخوام آدرس این عکسهارو تو دیتابیس ذخیره کنم بعد از طریق یه صفحه مدیریت هر وقت خواستم عوض یا اضافه کنم. کدشم به صورت زیر است:
<figure id="slider">
<div class="container">
<img src="../images/baner/myslide1.gif" alt="در اینجا متن دلخواه وارد نمایید." width="990" height="500"/>
<img src="../images/baner/myslide2.gif" alt=""/>
<img src="../images/baner/myslide3.gif" alt="در اینجا متن دلخواه وارد نمایید." />
<img src="../images/baner/myslide4.gif" alt="در اینجا متن دلخواه وارد نمایید."/>
<img src="../images/baner/myslide5.gif" alt="در اینجا متن دلخواه وارد نمایید."/>
<img src="../images/baner/myslide6.gif" alt="در اینجا متن دلخواه وارد نمایید."/>
<img src="../images/baner/myslide7.gif" alt="در اینجا متن دلخواه وارد نمایید."/>
<img src="../images/baner/myslide8.gif" alt="در اینجا متن دلخواه وارد نمایید."/>

</div>
<!--<figcaption></figcaption>
slideshow caption -->
<nav id="slider-nav"></nav>
<!-- navigation -->
</figure>
به آین آدرس نگاه کنید nicedoor.ir میخوام عکساشو از طریق صفحه مدیریت کنترل کنم.