PDA

View Full Version : درج عکس در صفحه و گرید



انتظاری
یک شنبه 21 شهریور 1389, 21:27 عصر
سلام من یک پروژه نوشتم که می خوام اطلاعات دیتابیسم را در داخل یک گریدویو نمایش بدم و نیز سطرهایی را کاربران بتوانند به آن اضافه کنند ولی من مشکلات زیر را دارم
1- نمیتوانم عکسی را از روی کامپیوتر کلاینت وارد صفحه ام کنم یک چیزی مانند openfiledialog را در ASP.NET پیدا نکردم من برای حل این مشکل از یک تکستباکس استفاده کردم که کاربر مسیر عکس خود را در آن وارد کند و بعد باتن را کلیک کند که خیلی کار سختی است
2-و بعد می خوام این عکس را با بقیه اطلاعاتش به دیتابیسم اضافه کنم که در گریدویو نمایش دهد که در گرید عکس را نمایش نمیدهد
لطفا من را راهنمایی کنید من هرچی گشتم چیزی را در اینترنت پیدا نکردم
لطفا با کد راهنمایی کنید



<%@ Page Language="C#‎" MasterPageFile="~/MainMaster/Main.master" Title="Untitled Page" %>
<script runat="server">
protected void btnImage_Click(object sender, EventArgs e)
{
Image1.ImageUrl = txtAddress.Text ;
}
protected void btnInsert_Click(object sender, EventArgs e)
{
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;User Instance=True");
string str2 = "( N'";

if (txtName.Text != "")
{
str2 += txtName.Text + " ', N' ";
}
if (txtFamily.Text != "")
{
str2 += txtFamily.Text + " ', ' ";
}
System.IO.FileStream fs1 = new System.IO.FileStream( txtAddress.Text , System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] b = new byte[fs1.Length];
fs1.Read(b, 0, (int)fs1.Length);

if (Image1.ImageUrl != null)
{
str2 += b + " ')";
}
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("Insert into tbKarmand ( Name, Family, Picture) VALUES " + str2 , cnn);
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
gv1.DataBind();
}
</script>
<asp:Content ID="Content3" ContentPlaceHolderID="cph2" runat="server" >

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:TextBox ID="txtFamily" runat="server"></asp:TextBox>
<asp:TextBox ID="txtAddress" runat="server"></asp:TextBox>
<asp:Image ID="Image1" runat="server" />
<asp:Button ID="btnImage" runat="server" Text="انتخاب عکس" OnClick="btnImage_Click" />
<asp:Button ID="btnInsert" runat="server" Text="درج سطر جدید" OnClick="btnInsert_Click" />
<asp:SqlDataSource ID="sds1" runat="server"
ProviderName="System.Data.SqlClient"
ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;User Instance=True"
SelectCommand="SELECT * FROM tbKarmand"
UpdateCommand="UPDATE tbKarmand SET
Name = @Name,
Family = @Family , Picture = @Picture
WHERE (Id = @Id)"
>
<UpdateParameters>
<asp:Parameter Type="Int64" Name="Id" />
<asp:Parameter Type="String" Name="Name" />
<asp:Parameter Type="String" Name="Family" />
<asp:Parameter Type="Object" Name="Picture" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:GridView ID="gv1" runat="server" DataSourceID="sds1"
AllowSorting="true" AllowPaging="true" AutoGenerateColumns="false" >
<Columns>
<asp:BoundField Visible="false" HeaderText="id" DataField="Id" SortExpression="Id" />
<asp:BoundField HeaderText="نام" DataField="Name" SortExpression="Name" />
<asp:BoundField HeaderText="نام خانوادگی" DataField="Family" SortExpression="Family" />
<asp:ImageField HeaderText="عکس" DataImageUrlField="Picture" />
</Columns>
</asp:GridView>
</asp:Content>

انتظاری
یک شنبه 21 شهریور 1389, 21:49 عصر
میشه یک نفر به من جواب بده
لطفا جواب بدین

انتظاری
یک شنبه 21 شهریور 1389, 22:09 عصر
بابا اگه میدونید جواب بدید و اگر هم راهی وجود نداره بگید تا من اینقدر نگردم اخه این سایت به چه درد میخوره که هیچ کس نیست جواب مرا بده به خدا توی همین سایتم کشتم کسی مشکل مثل منرا نداشته که من جوابی پیدا کنم

انتظاری
یک شنبه 21 شهریور 1389, 23:48 عصر
هیچ کس هیچی نمیدونه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟

انتظاری
دوشنبه 22 شهریور 1389, 22:54 عصر
سلام هیچ کس نمیدونه که من چه کدی بنویسم که کاربر بتونه از کامپیوتر خودش عکسی را به وب بفرسته وبعد با تایید اون عکس با بقیه اطلاعاتش به دیتابیس و گریدویو بایند شده به اون فرستاده بشه

maxpayn2
سه شنبه 23 شهریور 1389, 08:49 صبح
هیییششششش ، با با مردم خوابن ، شما نصفه شب اومدی عجله هم داری ؟

دوما ، شما واقعا در پنجره ، ToolBox در تب Standard چیزی به نام FileUpload ندیدی ؟

انتظاری
پنج شنبه 25 شهریور 1389, 02:38 صبح
سلام


دوما ، شما واقعا در پنجره ، ToolBox در تب Standard چیزی به نام FileUpload ندیدی ؟
اگه میدونستم که نمی پرسیدم توی یک سایت دیگه جوابم را گرفتم

انتظاری
پنج شنبه 25 شهریور 1389, 02:45 صبح
برای نمایش عکس داخل دیتابیس در درون گرید ویو
به گرید ویو یک TemplateField اضافه کنید ، گرینه Edit Templates را انتخاب و در کادر جدید یک Image یا کنترل دیگری که خاصیت Image URL دارد را اضافه کنید . کنترل اضافه شده را به فیلدی که اسم عکس در آن ذخیره شده است Bind کنید . بعد از این مراحل کد گرید ویو به این شکل میشود :



<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSourse1"
AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="Image3" runat="server"
ImageUrl='<%# "~/profile/" + Eval("Image") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

انتظاری
پنج شنبه 25 شهریور 1389, 03:04 صبح
برای آپلود کردن عکس
ابتدا دو کنترل زیر را می سازیم


<asp:FileUpload ID="FileUploadl" runat="server"/>
<br />
<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />

و بعد در event button کد زبر را می نویسیم



string StrFileName = Path.GetFileName(FileUpload1.FileName);
string FullPath = Server.MapPath("UploadFile/") + StrFileName;
FileUpload1.PostedFile.SaveAs(FullPath);

و برای ذخیره کردن در دیتابیس میتوانیم Image1.ImageUrl را در فیلد Image ذخیره کنیم
البته فیلد Image از نوع char است و آدرس عکس را در آن ذخیره می کنیم