PDA

View Full Version : حذف یا اپدیت یک فیلد از جدول



okpnz1
پنج شنبه 07 شهریور 1392, 21:13 عصر
سلام من می خوام توی پنل مدیریتی برای ویرایش عکس می خوام اول عکس قبلیو از دیتا بیس و پوشه تصاویر حذف بشه و تصویرو جدید آپلود کنم
کوئری دیلت که می نویسم کل اون سزر حدف میشه
اپدیت نوشتم و تصویرو null گذاشتم اررور داد
می شه راهنمایی کنید؟

bomb23
پنج شنبه 07 شهریور 1392, 22:38 عصر
سلام ، تو دیتا بیست تو ستون عکس تیک allow null فعاله؟

fakhravari
پنج شنبه 07 شهریور 1392, 22:40 عصر
فرمت VARBINARY max ?
cmd.Parameters.AddWithValue("@staff_photo", DBNull.Value);
cmd.Parameters.AddWithValue("@staff_photo", string.empty);

okpnz1
پنج شنبه 07 شهریور 1392, 23:54 عصر
سلام ، تو دیتا بیست تو ستون عکس تیک allow null فعاله؟
سلام بله فعاله

sasanrstm
جمعه 08 شهریور 1392, 02:22 صبح
سلام من می خوام توی پنل مدیریتی برای ویرایش عکس می خوام اول عکس قبلیو از دیتا بیس و پوشه تصاویر حذف بشه و تصویرو جدید آپلود کنم
کوئری دیلت که می نویسم کل اون سزر حدف میشه
اپدیت نوشتم و تصویرو null گذاشتم اررور داد
می شه راهنمایی کنید؟
سلام اولا یه تصویر به هراسم دلخواه(عکس پیش فرض) درپوشه ات باید باشه که چک کنه اگه اون نبود تصویر اصلی رو جایگزین کنه دوما تو دیتابیس تیک ستون عکست بزار باشه سوما nvachar 50 بزار ودر ادامه تو دگمه حذف که کنارش یه تکست باشه که عنوان خبر رو از تکست بگیره و با عنوان جدولت مقایسه کنه این کدو اعمال کن

try
{

SqlConnection con = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand("select * from TB_News where Title='" + txtRemov.Text + "'", con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
string title = dr["Title"].ToString();
string name = dr["Pic"].ToString();
con.Close();
if ((title == txtRemov.Text) && (name != "1.jpg"))
File.Delete(Server.MapPath("News//") + name);
Label1.Text = " عکس پاک شد";
}
catch
{
Label1.Text = " برای حذف عکس وارد کردن عنوان خبر الزامیست! ";
}

با اینکار عکست از پوشه حذف میشه ولی آدرسش هنوز تو بانکت هست خب حالا میریم سراغ وارد کردن آدرس جدید عکس تو دیتابیس و قرار دادن تو پوشه یه فایل آپلود با یه تکست کنارش با یه باتن که عنوان خبررو بگیره این کدهارو تو دگه به روز کردن آدرس عکس وقراردادن تو پوشه اعمال میکنی.


try
{
if (txtUp.Text != "")
{
string News = MapPath("1.jpg");
if (FileUpload2.HasFile)
{
News = FileUpload2.FileName;
FileUpload2.SaveAs(Server.MapPath("News//") + News);
}
SqlConnection con = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand("update TB_News set Pic='" + FileUpload2.FileName + "' where Title='" + txtUp.Text + "'", con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Label1.Text = " عکس به روز شد";
}
else
{
Label1.Text = " عنوان خبر را وارد کنید";
}
}
catch
{
Label1.Text = " برای تغییر عکس خبرعنوان خبر را واردکنید";
}

موند دوتا نکته کوچول سعی کن عکستبه همون اندازه ای که میخوائی نشون داده بشه باشه دوما اسم عکست فارسی نباشه که اکپرا موقع خواندن از دیتابیس بعضی وقتها خطا میده نمینتونه فارسی رو بخونه (تجربه شخصی)

sasanrstm
جمعه 08 شهریور 1392, 02:25 صبح
موفق باشی سوالی داشتی بازم بپرس. منتظر خبرای خوبی هستم.

okpnz1
جمعه 08 شهریور 1392, 11:34 صبح
موفق باشی سوالی داشتی بازم بپرس. منتظر خبرای خوبی هستم.
من می خوام موفق شم نمیشه:چشمک:
دقیقا کد شمارو نوشتم ولی اینگار تیترو مقایسه نمی کنه و می گه باید تیتر وارد شود:افسرده:

okpnz1
جمعه 08 شهریور 1392, 13:15 عصر
int id = Convert.ToInt32(Session["id"]);
DataRow dr = DataLayer.gallery.SelectRow(id).Tables[0].Rows[0];
txtTitle.Text = dr["titr"].ToString();
txtDescription.Text = dr["text"].ToString().Replace("<br/>", "\n");
دوستان این کد تو یه برنامه کاملا درست جواب میده ولی توی برنامه دیگه error میده من چیکار کنم؟:اشتباه:
واسه همون ویرایشه


There is no row at position 0.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IndexOutOfRangeException: There is no row at position 0.

Source Error:

Line 126: { Line 127: int id = Convert.ToInt32(Session["id"]); Line 128: DataRow dr = DataLayer.gallery.SelectRow(id).Tables[0].Rows[0]; Line 129: txtTitle.Text = dr["titr"].ToString(); Line 130: txtDescription.Text = dr["text"].ToString().Replace("<br/>", "\n");
Source File: f:\Rezvan\Admin\Ax.aspx.cs Line: 128

sasanrstm
جمعه 08 شهریور 1392, 18:26 عصر
اولا در مورد این کد که نوشتی توضیح بده که چیکار می خواد بکنه بعدش منکه اون بالا نوشتم باید یهت کست باکس بزاری تو اون تکست درست همون عنوانی یا موضوعی حالا بستگی به خودت داره کدوم فیلد وانتخاب کنی وارد تکست میکنی شرط ودقت کن من شر ط گذاشتم که جدول رو یا همون آدرس عکسو رو عضو کنه به شرطی که عنوان یا تایتل جدولم همونی باشه که تو تسکت باکس وارد میکنم

SqlCommand cmd = new SqlCommand("update TB_News set Pic='" + FileUpload2.FileName + "' where Title='" + txtUp.Text + "'", con);

یه خرده با کدها بازی کن مهم اینست که کد منو کپی کنی بزاری تو برنامت مهمه اینکه جریان کار دستت بیاد
تکست باکسی که من عنوان خبرم رو اونجا وارد میکنم اگه مال شما خطا میده حتما عنوان رو درست وارد نمیکنی . ممکنه موقع نوشتن فاصله داده باشی اون باید تو تکست وارد کنی دیگهtxtUp.Text

okpnz1
جمعه 08 شهریور 1392, 18:42 عصر
اینهمه ام که شما حس کردید خنگ نیسم:چشمک:
نه من کاملا متوجه کدتون شدم و بر اساس تیتر کد شمارو نوشتم
و در مورد کدم میاد محتویات تکست باکسارو می خونه و میریزه توی دیتا بیس و جایگزین قبلیا می کنه ولی مگه id که اولین فیلد دیتا بیس من هست نباید کدش Rowp[0 ] باشه؟

sasanrstm
جمعه 08 شهریور 1392, 19:08 عصر
ببخش قصدم توهین نبود و سوال آخری تون رو متوجه نشدم منظورتون چیه فقط اینو میدونم اگه کلماتی که تو تسکت وارد میکنی با کلماتی که تو بانکت وجود داره برابر نباشه خطا میده من خودم برای اینکه این خطا رخ نده وقتی دگمه ویرایش گرید رو میزنم ومیریزم تو تکست ها تکست تایتل رو کپی میکنم میزارم تو تکست بروز کردن تا متنش همونی باشه که تو جدول هست. خودم با این روش کار میکنم مشگلی هم بوجود نمیاد.

okpnz1
جمعه 08 شهریور 1392, 19:25 عصر
مرسی منظورم این نبود که توهین کردین:اشتباه:
مرسی باز تلاشمو می کنم

sasanrstm
جمعه 08 شهریور 1392, 19:44 عصر
109955http://barnamenevis.org/images/misc/pencil.png

okpnz1
جمعه 08 شهریور 1392, 19:52 عصر
واسه منم این جوریه