PDA

View Full Version : سوال: refactorکردن



00empty00
پنج شنبه 24 فروردین 1391, 12:33 عصر
دوستان من اگه بخوام برای ریختن خبر داخل پایگاه دادم اگه یه تکس باکس داشته باشم که
protected void Button1_Click(object sender, EventArgs e)
{
InsertnewsGroup(TextBox1.Text);
}

private void InsertnewsGroup(string News_Group_Title)
{
TBL_News_Groups newsGroup = new TBL_News_Groups()
{
News_Group_Title = TextBox1.Text
};

DataContext.Context.TBL_News_Groups.AddObject(news Group);
DataContext.Context.SaveChanges();
}

خب تا اینجا که مشکلی نیس و اطلاعاتمو داخل پایگام میریزه اما من اگه بخوام خلاصه ی خبرم و توضیحات و عکسم رو هم بریزم با کلیک بر روی همین دکمه من باید چکا کنم .News_Abstract = Txt_News_Abstract.Text رو زیر News_Group_Title = TextBox1.Text مینویسم اما نمیتونه بشناسه مشکل کار من کجاس و من چجوری تو تکس باکسای دیگمم میتونم عمل درج رو انجام بدم؟:ناراحت:

00empty00
پنج شنبه 24 فروردین 1391, 13:39 عصر
:متفکر::متفکر::متفکر:

mo.esmp
پنج شنبه 24 فروردین 1391, 14:49 عصر
اول از همە من هیچ ارتباطی بین Refactoring و سئوالی کە پرسیدین نمیبینم به هرحال.
توی این خط اومدین مقدار TextBox1 رو به تابع InsertnewsGroup فرستادین.
InsertnewsGroup(TextBox1.Text);
دوباره در تابع InsertnewsGroup اومدین مقدار TextBox1 رو به داخل متغییر News_Group_Title که در واقع همون پارامتر ارسالی به تابع InsertnewsGroup است، ریختین.
private void InsertnewsGroup(string News_Group_Title)
{
TBL_News_Groups newsGroup = new TBL_News_Groups()
{
News_Group_Title = TextBox1.Text
};
بهتره کدتون اینجوری بنویسین
protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
string fileName = fileUpload1.PostedFile.FileName;
filePath = Path.GetFileName(fileName);

TBL_News_Groups newsGroup = new TBL_News_Groups()
{
News_Group_Title = TextBox1.Text,
News_Group_Summary = TextBox2.Text,
News_Group_Image = filePath
};

DataContext.Context.TBL_News_Groups.AddObject(news Group);
DataContext.Context.SaveChanges();
}
}

00empty00
پنج شنبه 24 فروردین 1391, 15:23 عصر
ممنون دوس عزیز ...
من
private void InsertnewsGroup(string News_Group_Title)این تابع رو با ریفکتور کردن ایجاد کردم!!!خودمم نمیدونم چرا این کارو کردم:لبخند:
دوست عزیز من خط 5_6 رو متوجه نشدم چه کار رو میکنه؟برای درج عکسه؟
اگه بخوام با زدن دکمه ی Browse مدیر سایت عکس مورد نطرشو آپلود کنه من باید از چه کدی استفاده کنم؟

00empty00
پنج شنبه 24 فروردین 1391, 22:40 عصر
کسی نیس راهنماییمون کنه:گریه:

EnKamran
جمعه 25 فروردین 1391, 00:12 صبح
خط شماره 5 نام فایل ارسالی رو میریزه توی متغیری به نام filename و خط 6 آدرس عکس رو میریزه توی متغیری به نام filepath حالا شما مثل اون تکست باکس که میریزی توی فیلدهای بانک اطلاعاتیت نام و آدرس عکس رو هم میتونی ذخیره کنی.

00empty00
جمعه 25 فروردین 1391, 00:29 صبح
خط شماره 5 نام فایل ارسالی رو میریزه توی متغیری به نام filename و خط 6 آدرس عکس رو میریزه توی متغیری به نام filepath حالا شما مثل اون تکست باکس که میریزی توی فیلدهای بانک اطلاعاتیت نام و آدرس عکس رو هم میتونی ذخیره کنی.
دوست عزیز مشکل من الان اینجاس که چجوری آدرس عکسمو میتونم بگیرم .
من اگه بخوام برای آپلود یه عکس که مدیر سایت قراره بهمراه خبر قراره عکس مورد نظر خودشو انتخاب کنه و بریزه باید چکا کنم روی روال کلیک روی دکمه ی Browse باید چه کدی رو بنویسم(با Ef دارم کار میکنم):اشتباه:
ممنون میشم کدشو برام بذارید:اشتباه:

EnKamran
جمعه 25 فروردین 1391, 11:51 صبح
try
{
string filename = Path.GetFileName(fuNewsPic.FileName);
string filepath = "~/NewsPics/" + filename;
fuNewsPic.SaveAs(Server.MapPath("~/NewsPics/") + filename);

}
catch (Exception ex)
{
Response.Write(ex.Message);
}
این کد فایل رو آپلود میکنه توی پوشه ای به نام "NewsPics" در ریشه ی سایت شمه و متغیر filepath هم آدرس فایل رو نگه میداره حالا همین آدرس رو بریز توی فیلدی که قراره آدرس عکس رو نگه داره

00empty00
شنبه 26 فروردین 1391, 10:31 صبح
protected void BtnBrowse_Click(object sender, EventArgs e)
{
using (var context = new NewsEntities())
{
try
{
string filename = Path.GetFileName(fuNewsPic.FileName);
string filepath = "~/NewsPics/" + filename;
fuNewsPic.SaveAs(Server.MapPath("~/NewsPics/") + filename);

}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}

protected void BtnSave_Click(object sender, EventArgs e)
{

using (var context = new NewsEntities())
{
if (Page.IsValid)
{
string fileName = fileUpload1.PostedFile.FileName;
filePath = Path.GetFileName(fileName);

Tbl_News news = new Tbl_News()
{
News_Title = Txt_News_Title.Text,
News_Abstract = Txt_News_Abstract.Text,
News_Text = Txt_News_Text.Text,
News_Image = filePath
};

context.Tbl_News.AddObject(news);
context.SaveChanges();
}
}

}
من کامل متوجه نشدم!:خجالت:یعنی من ریشه ی سایتم یه فولدری به اسم NewsPics بسازم که قراره آدرس عکسام ریخته بشه توش

alonemm
شنبه 26 فروردین 1391, 11:33 صبح
protected void BtnBrowse_Click(object sender, EventArgs e)
{
using (var context = new NewsEntities())
{
try
{
string filename = Path.GetFileName(fuNewsPic.FileName);
string filepath = "~/NewsPics/" + filename;
fuNewsPic.SaveAs(Server.MapPath("~/NewsPics/") + filename);

}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}

protected void BtnSave_Click(object sender, EventArgs e)
{

using (var context = new NewsEntities())
{
if (Page.IsValid)
{
string fileName = fileUpload1.PostedFile.FileName;
filePath = Path.GetFileName(fileName);

Tbl_News news = new Tbl_News()
{
News_Title = Txt_News_Title.Text,
News_Abstract = Txt_News_Abstract.Text,
News_Text = Txt_News_Text.Text,
News_Image = filePath
};

context.Tbl_News.AddObject(news);
context.SaveChanges();
}
}

}
من کامل متوجه نشدم!:خجالت:یعنی من ریشه ی سایتم یه فولدری به اسم NewsPics بسازم که قراره آدرس عکسام ریخته بشه توش

بله.
دقت کنید که این پوشه باید دارای مجوز نوشتن باشه.

00empty00
شنبه 26 فروردین 1391, 11:53 صبح
بله.
دقت کنید که این پوشه باید دارای مجوز نوشتن باشه.
میشه بیشتر توضیح بدید (اگه ممکنه همرا با کد) آخه فک کنم مشکل من هم همینه فک کنم مجوز اینو که از بعضی متغیرارو استفاده کنمو ندارم چون تو خط 7-8-26-27-34 path_fuNewspic_Fileupload-filepath رو نمیشناسه:خجالت:
کجای کارم اشتباس:خجالت:

00empty00
یک شنبه 27 فروردین 1391, 12:27 عصر
کجای کارم اشتباس:متفکر:

00empty00
دوشنبه 28 فروردین 1391, 12:00 عصر
کسی نیس رفع اشکال کنه:افسرده:

alonemm
دوشنبه 28 فروردین 1391, 12:10 عصر
میشه بیشتر توضیح بدید (اگه ممکنه همرا با کد) آخه فک کنم مشکل من هم همینه فک کنم مجوز اینو که از بعضی متغیرارو استفاده کنمو ندارم چون تو خط 7-8-26-27-34 path_fuNewspic_Fileupload-filepath رو نمیشناسه:خجالت:
کجای کارم اشتباس:خجالت:

دوست من:
برای دادن مجوز به پوشه مورد نظر شما باید بسته به کنترل پنل هاستتون به قسمت مدیریت فایل ها و پوشه برید و در اونجا اقدام به دادن سطح دسترسی کامل (777) کنید. (نام کنترل پنل هاستتون رو ذکر کنید تا بهتر راهنمایی کنم.)

یک مثال برای آپلود فایل بروی سایت:


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

protected void UploadButton_Click(object sender, EventArgs e)
{
// Specify the path on the server to
// save the uploaded file to.
String savePath = @"c:\temp\uploads\";

// Before attempting to perform operations
// on the file, verify that the FileUpload
// control contains a file.
if (FileUpload1.HasFile)
{
// Get the name of the file to upload.
String fileName = FileUpload1.FileName;

// Append the name of the file to upload to the path.
savePath += fileName;


// Call the SaveAs method to save the
// uploaded file to the specified path.
// This example does not perform all
// the necessary error checking.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
FileUpload1.SaveAs(savePath);

// Notify the user of the name of the file
// was saved under.
UploadStatusLabel.Text = "Your file was saved as " + fileName;
}
else
{
// Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "You did not specify a file to upload.";
}

}
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>FileUpload Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h4>Select a file to upload:</h4>

<asp:FileUpload id="FileUpload1"
runat="server">
</asp:FileUpload>

<br /><br />

<asp:Button id="UploadButton"
Text="Upload file"
OnClick="UploadButton_Click"
runat="server">
</asp:Button>

<hr />

<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</div>
</form>
</body>
</html>