PDA

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



mbasirati
پنج شنبه 17 مرداد 1392, 11:53 صبح
سلام
من توی دیتابیسم یه جدول دارم برای ذخیره اخبار. یه جدول هم دارم برای دسته بندی اخبار. از اونجایی که میخوام کاربر بتونه برای یه خبر رو توی چندتا دسته قرار بده یه جدول دیگه هم گذاشتم که آی دی خبر و آی دی دسته رو ثبت میکنه.

توی قسمت درج خبر یه چک باکس لیست گذاشتم که تمامی دسته ها رو نمایش میده. حالا موقع درج خبر چه جوری باید این دسته بندیا رو توی جدول مربوطش ذخیره کنم؟
من این کد رو برا درج خبر نوشتم:
protected void lBtnSave_Click(object sender, EventArgs e)
{
try
{
Database db1 = new Database();
string query1 = "INSERT INTO News (NewsTitle,NewsSummery,NewsText,NewsImage,NewsDate ,Show,KeyWords,Writer,
CommentAble) VALUES (@NewsTitle,@NewsSummery,@NewsText,@NewsImage,@New sDate,@Show,@KeyWords,@Writer,@CommentAble)";
SqlCommand smd = new SqlCommand(query1, db1.sc);
smd.Parameters.AddWithValue("@NewsTitle", txtTitle.Text);
smd.Parameters.AddWithValue("@NewsSummery", ftbSummeryText.Text);
smd.Parameters.AddWithValue("@NewsText", ftbCompleteText.Text);
smd.Parameters.AddWithValue("@NewsImage", AsyncFileUpload1.FileName);
smd.Parameters.AddWithValue("@NewsDate", "0");
smd.Parameters.AddWithValue("@KeyWords", txtKeyWords.Text);
smd.Parameters.AddWithValue("@Writer", txtWriter.Text);
smd.Parameters.AddWithValue("@Show", !chkDontShow.Checked);
smd.Parameters.AddWithValue("@CommentAble", chkCommentAble.Checked);
smd.ExecuteNonQuery();
lblError.Text = "مطلب با موفقیت ارسال شد.";
panelNotification.CssClass = "alert alert-success";
PanelContent.Visible = false;

}
catch (Exception ex)
{
lblError.Text = "خطایی رخ داده است!" + ex.ToString();
panelNotification.CssClass = "alert alert-error";
}
finally
{
panelNotification.Visible = true;
}
}

mbasirati
پنج شنبه 17 مرداد 1392, 12:55 عصر
عاقا کسی نیس؟

اوبالیت به بو
پنج شنبه 17 مرداد 1392, 13:23 عصر
درود بر شما

اگر می خواهید یک خبر در چند دسته بندی قرار بگیره، اون جدول اضافی که گفتید ایجاد کردید رو پاک کنید. در همین جدول خبر یک فیلد اضافه کنید به نام NewsCategory و از نوع رشته بگیرید. وقتی چک باکس های دسته بندی رو تیک می زنید ID اون دسته بندی رو در یک متغیر رشته ای موقت ذخیره کنید و بوسیله کاما جدا کنید. در دیتابایس هم به صورت رشته ای ذخیره کنید. وقتی خواستید نشون بدید این کاما ها رو یکی یکی جدا کنید و سلکت بزنید.
این روش خیلی بهتر از این هست که یک جدول جداگانه در نظر بگیرید.