PDA

View Full Version : converting data type nvarchar to int



gheysar14
چهارشنبه 02 مرداد 1387, 10:15 صبح
کسی میدونه مشکل این برنامه چیه؟
تو خط dr = cmd.ExecuteReader ارور Error converting data type nvarchar to int. رو میده



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Tarikh.Text = getCurrentDate.ToString
If Request.QueryString("ID") IsNot Nothing Then
If Not IsPostBack Then
objConnection.Open()
Dim cmd As New SqlCommand("darya_LoadByIDNewsLetter", objConnection)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@IDNewsletter", Request.QueryString("ID"))
Dim dr As SqlDataReader
dr = cmd.ExecuteReader
If dr.Read Then
Tarikh.Text = dr.GetValue(3).ToString
FreeTextBox1.Text = dr.GetValue(2).ToString
End If
btn_newsletter.Text = "ارسال مجدد"
objConnection.Close()
dr.Close()
End If
End If
End Sub



این هم پروسیجر darya_loadbyIDNewsletter



CREATE proc darya_LoadByIDNewsLetter
@IDNewsLetter int
as
select * from tblNewsLetter
where IDNewsLetter=@IDNewsLetter
GO

maxpayn2
چهارشنبه 02 مرداد 1387, 12:40 عصر
سلام
پارامتر @IDNewsLetter توی پروسیجر از نوع int هست ولی Request.QueryString("ID") از نوع string ، پس باید او ل به int تبدیلش کنی بعد به عنوان پارامتر برای پروسیجر مشخص بشه

gheysar14
چهارشنبه 02 مرداد 1387, 14:30 عصر
سلام
پارامتر @IDNewsLetter توی پروسیجر از نوع int هست ولی Request.QueryString("ID") از نوع string ، پس باید او ل به int تبدیلش کنی بعد به عنوان پارامتر برای پروسیجر مشخص بشه

ممنون از راهنماییتون:لبخندساده:. من کاری که شما گفتین رو انجام دادم


cmd.Parameters.AddWithValue("@IDNewsletter", Integer.Parse(Request.QueryString("ID")))

حالا ارور Input string was not in a correct format. رو تو همین خط میده

maxpayn2
چهارشنبه 02 مرداد 1387, 14:45 عصر
Convert.ToInt32(Request.QueryString("ID"))

gheysar14
چهارشنبه 02 مرداد 1387, 14:55 عصر
باز هم همون ارور رو میده

maxpayn2
چهارشنبه 02 مرداد 1387, 15:18 عصر
شاید پارامتر ID که میگیری عدد نیست

gheysar14
پنج شنبه 03 مرداد 1387, 10:14 صبح
من پارامتر رو از یه هایپرلینک که تو یه گرید ویو هست میفرستم
NavigateURL رو هم گذاشتم : SendNewsletter.aspx?ID=Gridview1.selectedrow.cells (4).text
ID تو جدول از نوع Int هست

Amir Taghavi
پنج شنبه 03 مرداد 1387, 10:55 صبح
Val(Request.QueryString("ID"))

اگه مقدار ID چیزی غیر از عدد باشه تبدیل به صفر میشه.

gheysar14
شنبه 05 مرداد 1387, 10:40 صبح
اون کار رو هم کردم نشد
شاید مشکل از جای دیگه ای باشه ؟
یکی کد رو اجرا کنه و جوابشو بده
اگه اطلاعات دیگه ای بخواهین بگین که بدم

milade
یک شنبه 06 مرداد 1387, 06:19 صبح
سلام
منم معمولا این خطا برام پیش میاد اشکال هم اینه که شما از sp استفاده کردید و اونجا هم id رو int دادید
اگه شما id رو nvarchar(50) بدید حله (البته امنیت یه کم افت می کنه).
بای

gheysar14
یک شنبه 06 مرداد 1387, 09:37 صبح
من رفتم دیتاتایپ IDNewsletter رو هم تو table و هم تو SP از نوع nvarchar کردم حالا برنامه دیگه ارور نمیده ولی توی dr هم هیچی قرار نمیگیره و وارد شرط if dr.read نمیشه

milade
دوشنبه 07 مرداد 1387, 06:19 صبح
text کن اگه نشد!!!

gheysar14
سه شنبه 08 مرداد 1387, 11:33 صبح
حالا متوجه شدم که مشکل من در ارسال پارامتر هست
تو قسمت اچ تی ام ال


<asp:HyperLinkField
NavigateUrl="SendNewsletter.aspx?ID=<%=Gridview1.selectedrow.cells(4).text%>"Text="يی©ںی¬ ¦ ©ëںêى"/>


تو address bar صفحه دوم اینو نشون میده:
http://localhost:1671/Newsletter/SendNewsletter.aspx?ID=<%=Gridview1.selectedrow.cells(4).text%>
مشکل از چیه؟

milade
چهارشنبه 09 مرداد 1387, 06:26 صبح
مگه می خوای چی کار کنی ؟
این طور استفاده کن شاید جواب داد
SendNewsletter.aspx?ID='<%=Gridview1.selectedrow.cells(4).text%>'
کپیش کن اینجا بد نشون می ده

gheysar14
شنبه 12 مرداد 1387, 12:14 عصر
این کدی که شما گفتید چه فرقی با کد من داشت؟

milade
شنبه 12 مرداد 1387, 12:21 عصر
اینو داشت ''
حالا حل شد یا نه؟

gheysar14
شنبه 12 مرداد 1387, 12:45 عصر
نه! نمیدونم چرا کار با گریدویو اینقدر دردسر داره. به نظرم کدها هم درسته. شما میتونید یه نمونه از کدی که این کاری که من میخوام انجام بده رو برام بفرستید؟

milade
شنبه 12 مرداد 1387, 13:15 عصر
من واقعیتش از گرید و کنترلهای اماده متنفرم(خیلی خیلی)
شما بگو برای چه کاری می خواید کد نویسی می کنم(به شرط تشکر)(هه هه)
بای

gheysar14
شنبه 12 مرداد 1387, 13:27 عصر
این هم از تشکر :چشمک:
ببین من میخوام تو گریدویو که یک سری اطلاعات از دیتابیس رو نمایش میده یه ستون دیگه هم داشته باشم که هایپرلینک باشه که وقتی روش کلیک میشه بیاد اطلاعات مربوط به اون سطر رو بگیره و به یه صفحه دیگه بفرسته و اون مقادیر رو تو یه سری تکست باکس جاگذاری کنه. همین!

milade
شنبه 12 مرداد 1387, 16:54 عصر
زرشک.
من نگفتم که برای اون تشکر کنی
اینم اونی که میخوای (http://barnamenevis.org/forum/attachment.php?attachmentid=21188&d=1217679309) که باید خودت کمی تغییرش بدی
اطلاعات بیشتر در مورد استفاده (http://barnamenevis.org/forum/showthread.php?t=116062&page=2)
بای