PDA

View Full Version : سوال: گرفتن id هر سطر



fakhravari
شنبه 16 مهر 1390, 19:05 عصر
با سلام

1)دوستان من یک گرید به دستور select * پر میکنم .
2)حالا من به چه شکل id هر مطلب را که در گرید نمایش میده دریافت و با جدول نظر سنجیم چک کنم .
که اگر id مساوی بود در جدول نظرسنجیم مقدار برگردونه و درون گریدی که با select * پرمیشه نمایش دهید.

karim orooji
شنبه 16 مهر 1390, 19:30 عصر
سلام دوست عزیز
ولادت با سعادت حضرت رضا (ع) به شما و دوستان تبریک میگم
درباره سوال شما توی سایت زیاده
جستجو کن


یا علی

fakhravari
شنبه 16 مهر 1390, 19:47 عصر
عزیز دل برادر این همه راه اومدی همینو بگی .
کسی لینک داره بزاره من که پیدا نکردم در مورد چیزی که می خواهم

as13851365
شنبه 16 مهر 1390, 21:06 عصر
به راحتی می تونی از دستورات sql استفاده کنی ( راه های زیادی بسته به سلیقه هر کس متفاوت هستش استفاده از select های تو در تو و یا .... می تونه کارت رو راه بندازه )

در ضمن اینجور مباحث در سایت گفته شده حداقل قبل از ایجاد یک تایپیک جستجو می کردی :قلب:

fakhravari
شنبه 16 مهر 1390, 21:26 عصر
عزیز دل برادران شما که یه insert به بانک کردین با این پستون خوب کامل بگین دیگه
بزارین من تاپیک قبلی بزارم من جوابم توی این پست نگرفتم یه تاپیک جدید زدم

http://barnamenevis.org/showthread.php?307663-%D8%A7%D9%85%D8%AA%DB%8C%D8%A7%D8%B2-%D8%AF%D9%87%DB%8C-%D8%A8%D9%87-Post&p=1353207#post1353207

fakhravari
شنبه 16 مهر 1390, 21:46 عصر
دوستان یه نمونه کد
SELECT TBLNews.NewsID, TBLNews.Title, TBLNews.Abstract, TBLNews.Contents, TBLNews.AddDate, TBLNews.img,
Sum(RatingPost.Rating) AS SumOfRating, Count(RatingPost.PostID) AS CountOfPostID

FROM TBLNews INNER JOIN RatingPost ON TBLNews.NewsID = RatingPost.PostID
GROUP BY TBLNews.NewsID, TBLNews.Title, TBLNews.Abstract, TBLNews.Contents, TBLNews.AddDate, TBLNews.img;
اما زمانی کار میده که مقداری توی جدول نظرسنجی هم باشه در غیر این صورت نمایش نمیده پستی

fakhravari
شنبه 16 مهر 1390, 23:16 عصر
کسی نبود .

میلاد قاضی پور
شنبه 16 مهر 1390, 23:32 عصر
دوست عزیز من دقیقا متوجه نشدم منظورتو. فکر کنم بهتر باشه مسألتو ریز کنی و ببینی دقیقا سوألت چی هست چون شما با توضیح مفصل کاری که میخواید بکنید فقط کاربران رو از پاسخ دادن میترسونید . اما اگر همونی باشه که من متوجه شدم ، یعنی گرفتن فیلد آی دی سطری خاص از گرید ویو اونوخ کدش اینه :




<asp:TemplateField HeaderText="نمایش">
<ItemTemplate>
<asp:LinkButton runat="server" Text="نمایش" ID="lbutton_namayesh" CommandArgument='<%#Eval("id")%>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>


بعد باید توی رویداد rowcommand اینو بنویسید:



protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string id = (string)e.CommandArgument;

fakhravari
یک شنبه 17 مهر 1390, 00:18 صبح
با سلام
دوستان بزارین شرش کنده شه به این کد ها دقت کنید.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(@"~\Xml_Top\News.xml"));
GridView2.DataSource = ds.Tables[0];
GridView2.DataBind();
}
}

و با گفته های دوستمون میلاد قاضی پور
string NewsID = (string)e.CommandArgument;

RatingPosting r = new RatingPosting();
r.PostId = Int32.Parse(NewsID.ToString());
r.t1();

Label aa = (Label)this.FindControl("Label1");
aa.Text = r.Rate.ToString();
و کد html
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
ShowHeader="False" BorderStyle="None" GridLines="None"
ShowHeaderWhenEmpty="True"
onrowcommand="GridView2_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div id="entry-2527" class="post">
<span class="post-top"></span>
<div class="entry">
<h2 class="posttitle"><%# HttpUtility.HtmlEncode(Eval("Title"))%></h2>
<p><%# HttpUtility.HtmlEncode(Eval("Abstract"))%></p>
<div class="post-more-link">مشاهده <a target="_self" href="DisplayNews.aspx?NewsID=<%# HttpUtility.HtmlEncode(Eval("NewsID"))%>">دامه مطلب</a></div>
<div class="post-footer"></div>
</div><span class="post-btt"></span>
</div>

<div class="meta">
<ul>
<li class="date" ><%# HttpUtility.HtmlEncode(Eval("AddDate"))%></li>
<li class="comment"><asp:LinkButton runat="server" Text="شماره :" ID="lbutton_namayesh" CommandArgument='<%# HttpUtility.HtmlEncode(Eval("NewsID"))%>'></asp:LinkButton></li>
<li class="categry" style="text-align:right;">

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

</li>
</ul>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>

</asp:GridView>
نمایش نمیده چیزی

as13851365
یک شنبه 17 مهر 1390, 00:28 صبح
سوالت کلا نا مفهوم هستش
ولی برداشتی که من از سوال کردم اینه که تو می خواهی لیست پستها رو به همراه تعداد نظرات ثبت شده برای آن نمایش بدی اگه اینجوری هست که من گفتم می تونی به راحتی از دستورات sql استفاده کنی

ولی با توجه به گفته های خودت :

1)دوستان من یک گرید به دستور select * پر میکنم .
2)حالا من به چه شکل id هر مطلب را که در گرید نمایش میده دریافت و با جدول نظر سنجیم چک کنم .

خوب من با دات نت کار نکردم ولی تو که داری اطلاعات رو در گرید نشون می دی آی دی هر رکورد رو هم در گرید ( حالا به صورت مخفی باشه یا نه بستگی به خودت داره ) قرار بده و برای عملیات بعدی با انتخاب هر سطر از گرید می تونی مقدار آی دی مربوط به آن گرید رو بخونی


که اگر id مساوی بود در جدول نظرسنجیم مقدار برگردونه و درون گریدی که با select * پرمیشه نمایش دهید.
منظورت از مقدار برگردونه رو مشخص نکردی که چی می خواهی اگه تعداد نظرات ثبت شده براش هست که باز از دستورات sql می تونی استفاده کنی ولی اگه باز منظورت چیزه دیگه ای هست خوب واضحتر توضیح بده (علم و غیب نداریم که بدونیم دنبال چی هستی )

mehran_sh_t
یک شنبه 17 مهر 1390, 00:37 صبح
سلام
از Left Inner Join استفاده کنید
این دستور، اون رکورد هایی که در جدول دوم هیچ رکورد معادلی ندارند (اونایی که هیچ رایی براشون داده نشده) رو هم بر می گردونه


عزیز دل برادر این همه راه اومدی همینو بگی .


عزیز دل برادران شما که یه insert به بانک کردین با این پستون خوب کامل بگین دیگه



دوستان بزارین شرش کنده شه به این کد ها دقت کنید.

اگر لحن گفتارتون رو بهتر کنید، بهتر جواب می گیرید.

موفق باشید

fakhravari
یک شنبه 17 مهر 1390, 00:38 صبح
با سلام به صورت تکی میتونم این جست جو رو انجام بدم
ALTER procedure AmarRating(@PostID int)
as
begin
SELECT Count(*) as cnt ,sum(Rating)as jamrate FROM RatingPost where PostID = @PostID
end;
اما هالا برای گرید به چه شکل ؟
با گفته های دوستمون میلاد قاضی پور هم چک کردم اما جواب نداد

با سلام خدمت mehran_sh_t
یه نمونه مثال میزنید؟

میلاد قاضی پور
یک شنبه 17 مهر 1390, 01:05 صبح
شما باید در موردی که من گفتم تمپلیت فیلد مخصوص داشته باشید برای ستون "مشاهده:"
البته اگه تصویر گرید ویوی شمارو ببینم بهتر میتونم نظر بدم. یه عکس از گرید ویوت بذار ببینم چه خبره اونجا !

fakhravari
یک شنبه 17 مهر 1390, 01:08 صبح
با سلام خدمت دوستان ممنون از همگی
با تغیرات iner join حل شد با این کد جواب گرفتم
با سپاس از همگی دوستان
ALTER PROCEDURE RatingAmar
AS
begin
SELECT TBLNews.NewsID, TBLNews.Title, TBLNews.Abstract, TBLNews.Contents, TBLNews.AddDate, TBLNews.img, Sum(RatingPost.Rating) AS SumOfRating, Count(RatingPost.PostID) AS CountOfPostID
FROM TBLNews Left Outer Join RatingPost ON TBLNews.NewsID = RatingPost.PostID
GROUP BY TBLNews.NewsID, TBLNews.Title, TBLNews.Abstract, TBLNews.Contents, TBLNews.AddDate, TBLNews.img
ORDER BY NewsID DESC;
end