PDA

View Full Version : دستور Insert (اس کیو ال ) برای یک متغیر عددی



nasimnastaran
چهارشنبه 14 تیر 1385, 18:40 عصر
با سلام ،
myInt یک متغیر عددی است و میخواستم این متغیر را در دستور INSERT ذیل بکار ببرم :

string strInsert="INSERT INTO BOOKS (TITLE,AUTHOR,PAGECOUNT,TOPIC,CODE)"
+"VALUES('Test Book','Test Author', myInt, 'Test Topic', 'Test Code');";
با توجه به این که فیلد PAGECOUNT از نوع int است ، بنابراین قراردادن myInt بین دو کوتیشن که برای مقادیر رشته ای بکار می رود ، فکر کنم کار صحیحی نباشد ( یعنی '"+myInt+"' ) .
لطفا راهنمایی بفرمایید .
با تشکر

ghafoori
چهارشنبه 14 تیر 1385, 20:22 عصر
روش ساده تر کد زیر را بکار ببرید



string strInsert = "INSERT INTO BOOKS (TITLE,AUTHOR,PAGECOUNT,TOPIC,CODE) VALUES('Test Book','Test Author'," + myInt.ToString + ", 'Test Topic', 'Test Code');";روش سختتر و کاملتر این است که از خاصیت parameter شی sqlcommand استفاده کنی که فکر کنم همون کد بالا کارتون را راه میاندازد:چشمک:

nasimnastaran
پنج شنبه 15 تیر 1385, 18:26 عصر
شاید منظورتون این باشه :

......, '"+myInt.ToString()+"', ....
که در این صورت این مقدار یک رشته می باشد نه یک عدد از نوع int

Milad Mohseny
پنج شنبه 15 تیر 1385, 23:56 عصر
......, '"+myInt.ToString()+"', ....
یک مقدار عددی باید در دستورات باشد پس سینگل کوتیشن ' ' نمیخواهد.

nasimnastaran
یک شنبه 18 تیر 1385, 12:44 عصر
میشه منظورتان را واضح تر بگید ؟

Ghalandari
یک شنبه 18 تیر 1385, 15:20 عصر
چون داده شما عددیه پس احتیاج به کوتیشن نیست

reza_rad
یک شنبه 18 تیر 1385, 15:23 عصر
مگه با بدون کوتیشن مشکل داری؟

once4ever
یک شنبه 18 تیر 1385, 16:17 عصر
در کوئریهای اس کیو ال علامت ' ' مشخص کننده رشته یا عدد نیست و فقط نشاندهنده یک مقدار هست جدا از اینکه این مقدار رشته هست یا عدد. ولی نحوه نوشتن مربوط به محیطی هست که اونجا داری کوئری رو مینویسی.
مثلا برای نمونه ای که خودت اول گفتی: معنی نداره یک متغیر رو بین " " قرار بدی حالا چه با ' ' چه بدون اون.

Milad Mohseny
یک شنبه 18 تیر 1385, 18:13 عصر
توی SQL برو و مثلاً اگه یک جدول با نام T1 داشته باشی و یک فیلد عددی با نام ID و یکی هم رشته ای با نام Name اگر دستور اول رو اجرا کنی خطا ندارد ولی دستور دوم خطا دارد .

INSERT INTO T1 (Id,Name) Values (1,'ali')


INSERT INTO T1 (Id,Name) Values ('1','ali')

once4ever
یک شنبه 18 تیر 1385, 23:24 عصر
من نمیدونم چجوری و کجا امتحان کردی! ولی من این کد رو اجرا کردم و انجام شد (فیلد age از نوع int هست)

INSERT INTO testint (name, age) VALUES ('test', '2')
و حتی اگه برای 2 ' ' نگذاری هم انجام میشه.

بازم چک کن و اگه خطا گرفت. اینجا بگو خطارو

reza_rad
دوشنبه 19 تیر 1385, 07:38 صبح
اگه هنوز مشکل وجود داره اسکریپت جدول رو بذار اینجا آقای حسینی ببینیم مشکل چیه...

nasimnastaran
چهارشنبه 21 تیر 1385, 07:23 صبح
در کوئریهای اس کیو ال علامت ' ' مشخص کننده رشته یا عدد نیست و فقط نشاندهنده یک مقدار هست
اصل مطلب فکر می کنم همین است . چون فکر می کردم هر چیزی بین ' ' قرار گیرد یک رشته را بر می گرداند . از کلیه دوستان هم ممنونم . ضمنا جناب آقای راد ، myInt مقداری برگشتی از یک تابعی است که نوشتم . من این مقدار را می خواستم در دستور اس کیو ال قرار دهم . بدین ترتیب مشکلم هم حل شد .
بازم بسیار ممنون