• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

سوال درباره replace کزدن متن textbox

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
2 تا سوال دارم
1 چجوری میتونم چند بار ریپلیس کنم؟ مثلا یه بار الف رو با ب یه بار ج رو با د . وقتی 2 بار مینویسم و متنو با یه متغیر از تکست باکس میگیرم متغیر فقط اون ریپلیسی رو انجام میده و میگیره که جلوش نوشتهع شده.
کد رو ببینید
کد:
Dim x as string
textbox1.text.replace("A","B")
x = Texbox1.text.replace("c","D")
تو این کد متغیر ایکس اون ریپلیسی توی انجام شده که جلوی مساویه وبالاییه انجام نشده
سوال 2-
میخوام به تعداد نامحدود ریپلیس انجام بدم
ایز دیتا بیس تعداد اسم هارو بگیرم به همون تعداد ریپلیس کنم ینی در اصل اگه اون اسمی که توی دیتابیسه توی متن هم بود ریپلیس انجام بشه با for انکارو کردم ولی وقتی متغیر شامل متن رو میزارو توی دستور sql که بفرستمش به دیتابیس میگه NULL هست
کد رو ببینید
کد:
    Sub send1()
        cn = New SqlConnection("server=localhost;uid=sa;pwd=123;database=article;")
        cn.Open()
        Dim x As Integer
        Dim text As String
        Dim artname As String
[COLOR="RoyalBlue"]        For x = 1 To tarts
            cm1 = New SqlCommand("select artname from article where id = " & x, cn)
            artname = cm1.ExecuteScalar
            text = TextBox8.Text.Replace(artname, "<a href=/articles/" & artname & ".aspx>" & artname & "</a>")
        Next[/COLOR]
        If Not TextBox8.Text = "" Then
            If Not TextBox3.Text = "" Then
                Dim artname1 = TextBox3.Text
                Dim strinsert1 As String
                strinsert1 = "insert into article (artname,artcat1,artcat2,text) values( @artname , @artcat1 , @artcat2 , @arttext)"
                cm = New SqlCommand(strinsert1, cn)
                cm.Parameters.Add("@artname", artname1)
                cm.Parameters.Add("@artcat1", ddl1.SelectedItem.Value)
                cm.Parameters.Add("@artcat2", ddl2.SelectedItem.Value)
                cm.Parameters.Add("@arttext", text)
                cm.ExecuteNonQuery()
                cn.Close()
                Label3.Text = "Articles Added"
            End If
        Else
        End If
        send2()
    End Sub
 

mehdivk

Registered User
تاریخ عضویت
5 آپریل 2006
نوشته‌ها
319
لایک‌ها
0
در مورد سوال اول شما باید بگم که تابه Replace یک خروجی داره و خروجی این تابع همان رشته اول است و این تابع رشته اصلی تغییر نمی دهد در هر بار Replace کردن باید تابع را مساوی x قرار دهید تا رشته تغییر یافته در x ریخته بشه بهتره که در مرحله اول بیای x را مساوی مقدار Text Box قرار بدی و در مراحل بعدی به شکل زیر عمل کنی

کد:
x=TextBox1.Text
x=x.Replace("A","B")
x=x.Replace("C","D")
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
همونطور که مهدی جان فرمودند Replace یک تابع هست که شما از خروجی اون میتونید استفاده کنید. البته به این شکل هم میتونید مستقیما Replace دوم رو روی اولی انجام بدهید:
کد:
Dim x As String = TextBox1.Text.Replace("A", "B").Replace("C", "D")

سوال دوم رو متاسفانه متوجه نشدم.
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
ممنون از کمکتون
در مورد سوال دوم
ببینید سایت ویکی پدیا رو که دیدید؟ مقاله ها توشون لینک هست ینی اگه یه کلمه ای باشه توی اون مقاله که مقاله ی دیگری به اون اسم وجود داشته باشه اون کلمه لینک میشه به اون مقاله (البته اونا مثل اینکه اینکارو دستی انجام میدن)
من میخوام اینو خودکارش کنم
اول میاد تعداد کل مقالات موجودمو در میارم بعد یه حلقه درست میکنم میگن از مقاله ی 1 شروع کن تا آخر اسم مقاله رو بیار بیرون متن مقاله که قراره ارسال بشه رو چک کن اگه توش اسم اون مقاله ی بود با یه لینک عوض کن جاشو
مثلا دارم توی متن یاهو و یه مقاله دارم به نام یاهو این کلمه توی متن به شکل یاهو در میاد
حالا من وقتی این کارو میکنم( که البته با این مطلبی که شما گفتید عمل ریپلیسم درست انجام نمیشه) متن حاصل رو میریزم توی متغیر text و با دستور sql میفرستمش توی دیتا بیس ولی اون دستو sql میگه text نال هست
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
شاید این روشی که من میخوام برم روش خوبی نباشه . اگه روش بهتری سراغ دارید لطفا راهنمایی کنید
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
الان این ارور رو میده
کد:
Prepared statement '(@artname nvarchar(4),@artcat1 nvarchar(1),@artcat2 nvarchar(2),' expects parameter @arttext, which was not supplied.
در صورتی که من تعریف کردم که قدار پارامتر arttext برابر هست با همون text
یه مشکل توی اون replace هست ینی اون یه بلایی سرش میاره که اینجوری میشه
چون تا قبل از اون حلقه ی replace سالم بود
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
ُسلام:D
مشکل ما همچنان پا برجاستا
 
بالا