برگزیده های پرشین تولز

درخواست راهنمایی برای Ado.net

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
من میخوام وقتی کاربر وارد صفحه خبر میشه با یک تابع تعداد بازدید از اون خبر +1 بشه .
یعنی در تابع زیر :
کد:
[LEFT]    Private Sub AddHit(ByVal newsid As String)
        Dim Conn As New Data.OleDb.OleDbConnection("---")
        Conn.Open()
        Dim strSqlQuery As String = "UPDATE [coding_news] SET [newsCounter] =" & (???) & " WHERE [newsID] =" & newsid
        Dim objComm As New Data.OleDb.OleDbCommand(strSqlQuery, Conn)
        objComm.ExecuteNonQuery()
        Conn.Close()
        Conn.Dispose()
    End Sub[/LEFT]
به جای (???) چی قرار بدم تا این اتفاق بیفته ؟
در ضمن من شماره اون خبر رو از طریق QueryString دریافت میکنم و در اون صفحه فقط یک خبر وجود داره .
یعنی میخوام وقتی کاربر دکمه "ادامه خبر" رو کلیک میکنه ، وارد صفحه دیگه بشه و هنگام ورود ، شماره Counter اون خبر به اضافه ی 1 بشه .
 

ma_christian

Registered User
تاریخ عضویت
25 ژانویه 2007
نوشته‌ها
368
لایک‌ها
2
محل سکونت
Tehran
فکر کنم این جواب بده البته بطور دقیق نمی دونم ...

؟؟؟ = newsCounter + 1
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
من میخوام وقتی کاربر وارد صفحه خبر میشه با یک تابع تعداد بازدید از اون خبر +1 بشه .
یعنی در تابع زیر :
کد:
[LEFT]    Private Sub AddHit(ByVal newsid As String)
        Dim Conn As New Data.OleDb.OleDbConnection("---")
        Conn.Open()
        Dim strSqlQuery As String = "UPDATE [coding_news] SET [newsCounter] =" & (???) & " WHERE [newsID] =" & newsid
        Dim objComm As New Data.OleDb.OleDbCommand(strSqlQuery, Conn)
        objComm.ExecuteNonQuery()
        Conn.Close()
        Conn.Dispose()
    End Sub[/LEFT]
به جای (???) چی قرار بدم تا این اتفاق بیفته ؟
در ضمن من شماره اون خبر رو از طریق QueryString دریافت میکنم و در اون صفحه فقط یک خبر وجود داره .
یعنی میخوام وقتی کاربر دکمه "ادامه خبر" رو کلیک میکنه ، وارد صفحه دیگه بشه و هنگام ورود ، شماره Counter اون خبر به اضافه ی 1 بشه .
این رو تست کنید

کد:
UPDATE [coding_news] SET [newsCounter] = ( select [newscounter] from [coding_news] where [newsID] =" & newsid &") + 1 WHERE [newsID] =" & newsid
 

mehdivk

Registered User
تاریخ عضویت
5 آپریل 2006
نوشته‌ها
319
لایک‌ها
0
فرض می کنم که جدول خبرهای شما دارای ستونی با نام Counter می باشد.

UPDATE NewsTable SET Counter = Counter + 1 WHERE NewsID=1

که بجای اون 1 شماره خبر قرار میگیره .

البته وقتی میخوای اطلاعات خبر رو از طریق SELECT به کاربر نشون بدی هم میتونی این کامند رو قبلش اجرا کنی با این روش به جای 2 بار وصل شدن به Database یک بار وصل شدی که از لحاظ Performance خیلی بهتره

این کد:
UPDATE NewsTable SET Counter = Counter + WHERE NewID=1;SELECT * FROM News WHERE NewsID=1
هم واسه روش دوم
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
پس counter + 1 هم جواب میده
نمیدونستم
متشکر :دی
 

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
کد:
[LEFT]"UPDATE [news] SET newsCounter = newsCounter + 1 WHERE [newsID] =" & newsid[/LEFT]
جواب داد . خیلی ممنون از همگی .
یه مشکل دیگه دارم :
برای اینکه بین اخبار جستجو بزارم از کد زیر استفاده کردم ، ولی کار نکرد :
کد:
[LEFT]    Private Sub fillrptsearch(ByVal SearchText As String)
        Dim conn As New Data.OleDb.OleDbConnection("---")
        conn.Open()
        Dim ds As New Data.DataSet
        Dim adapt As New Data.OleDb.OleDbDataAdapter("SELECT * FROM [news] WHERE ( newsText LIKE '%' +" & SearchText & "+ '%')", conn)
        adapt.Fill(ds, "coding_news")
        rptdetails.DataSource = ds
        rptdetails.DataBind()
    End Sub
    Protected Sub newsSearchButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim SearchText As String = newsSearch.Text.ToString
        fillrptsearch(SearchText)
    End Sub[/LEFT]

به نظرتون مشکلش چی میتونه باشه ؟
موقع جستجوی عدد این ارور رو میده :
کد:
[LEFT]
Operand type clash: int is incompatible with ntext[/LEFT]
موقع جستجوی حروف هم مینویسه :
کد:
[LEFT]Invalid column name 'رشته مورد جستجو'[/LEFT]
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
یه جایی مقدار int رو به یه مقدار ntext نسبت دادی . بگرد توی کدت پیداش کن.
 

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
آقا مشکل همچنان حل نشده .
این قسمت Search به هیچ صراطی مستقیم نیست !
هر کاریش میکنم باز همون ارورها رو میده .
اگه لطف کنید بیشتر مطالعه اش کنید ممنون میشم .
مرسی .
 

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
این کد بیهایند :
کد:
[LEFT]    Private Sub fillrptsearch(ByVal SearchText As String)
        Dim conn As New Data.OleDb.OleDbConnection("---")
        conn.Open()
        Dim ds As New Data.DataSet
        Dim strSql As String = ("SELECT * FROM [news] WHERE [newsText] LIKE ('%' + " & SearchText & " + '%')")
        Dim adapt As New Data.OleDb.OleDbDataAdapter(strSql, conn)
        adapt.Fill(ds, "news")
        rptnewssearch.DataSource = ds
        rptnewssearch.DataBind()
    End Sub
    Protected Sub newsSearchButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        fillrptsearch(newsSearch.Text)
    End Sub[/LEFT]

اینم کد rptnewssearch :

کد:
[LEFT]<asp:Repeater ID="rptnewssearch" runat="server">
<ItemTemplate>
	            <table border="0" cellpadding="1" cellspacing="0" width="754em">
                <tr>
                    <td align="center">
                        <table class="DataGrid" cellspacing="0" cellpadding="0" border="0" id="dgNews" style="border-width:0px;border-style:None;width:96%;border-collapse:collapse;">
	<tr>
		<td>
                                        <table border="0" cellpadding="1" cellspacing="0" width="100%">
                                            <tr>
                                                <td align="right" class="newTitle">
                                                    <%#DataBinder.Eval(Container.DataItem, "newsTitle")%>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td dir="rtl" align="right">
                                                    <table border="0" cellpadding="0" cellspacing="0" width="10">
                                                        <tr>
                                                            <td>
                                                                <img src="Images/news/icon_source.gif" alt="منبع" style="padding-left: 5px;" /></td>
                                                            <td style="width: 100%" nowrap="nowrap">
                                                                <%# DataBinder.Eval(Container.DataItem,"newsSource")%>
                                                                &nbsp;&nbsp;</td>
                                                            <td>
                                                                <img src="Images/news/Author.gif" alt="نويسنده" style="padding-left: 5px;" /></td>
                                                            <td style="width: 100%" nowrap="nowrap">
                                                                <%# DataBinder.Eval(Container.DataItem,"newsWriter")%>
                                                                &nbsp;&nbsp;</td>
                                                            <td>
                                                                <img src="Images/news/type.gif" alt="نوع" style="padding-left: 5px;" /></td>
                                                            <td style="width: 100%" nowrap="nowrap">
                                                                <%#DataBinder.Eval(Container.DataItem, "newsType")%>
                                                                &nbsp;&nbsp;</td>
                                                            <td>
                                                                <img src="Images/news/icon_calendar.gif" alt="تاريخ" style="padding-left: 2px;" /></td>
                                                            <td style="width: 100%" dir="rtl" nowrap="nowrap">
                                                                <%# DataBinder.Eval(Container.DataItem,"newsDate")%>
                                                            </td>
                                                            <td>
                                                                &nbsp;&nbsp;&nbsp;&nbsp;<img src="Images/news/icon_bazdid.gif" alt="تعداد بازدید"
                                                                    style="padding-left: 5px;" /></td>
                                                            <td style="width: 100%" nowrap="nowrap">
                                                                <%#DataBinder.Eval(Container.DataItem, "newsCounter")%>
                                                                &nbsp;&nbsp;</td>
                                                            <td>
                                                                <img src="Images/news/icon_newscode.gif" alt="کد خبر" style="padding-left: 5px;" /></td>
                                                            <td style="width: 100%" nowrap="nowrap">
                                                                <%# DataBinder.Eval(Container.DataItem,"newsID")%>
                                                                &nbsp;&nbsp;</td>
                                                        </tr>
                                                    </table>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td valign="top" align="right" dir="rtl" style="padding-top: 5px;text-align :justify">
                                                    <img style="padding-left: 5px; float: right; display: block;" src="Images/news/pictures/<%# DataBinder.Eval(Container.DataItem,"newsID")%>.gif"
                                                        alt="" /><%#(Left(System.Web.HttpUtility.HtmlDecode(DataBinder.Eval(Container.DataItem, "newsText")), 300))%> ...
                                                </td>
                                            </tr>
                                            <tr>
                                                <td>
                                                    <table border="0" cellpadding="0" cellspacing="0" width="70" align="left">
                                                        <tr>
                                                            <td>
                                                                <img src="Images/news/arrow_more.gif" /></td>
                                                            <td class="newMore" style="width: 100%">
                                                                <a href='<%# "news.aspx?newsTab=0&newsID=" & DataBinder.Eval(Container.DataItem,"newsId")%>'>ادامه خبر</a></td>
                                                        </tr>
                                                    </table>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td style="border-top: 1px dashed #ff6a00;">
                                                    &nbsp;</td>
                                            </tr>
                                        </table>
                                    </td>
	</tr>
</table>
                    </td>
                </tr>
                <tr>
            </table>
</ItemTemplate>
</asp:Repeater>
[/LEFT]
 
بالا