PDA

View Full Version : ﻣﺸﮑﻞ ﺩﺭ ﺩﺭﺝ ﺍﻃﻼﻋﺎﺕ ﺩﺭ ﺩﯾﺘﺎﺑﯿﺲ



javad13
یک شنبه 04 فروردین 1392, 20:19 عصر
ﺳﻼﻡ
ﯾﻪ ﺳﻮﺍﻟﻪ ﺳﺎﺩﻩ ﮐﻪ ﻣﻨﻮ ﮔﯿﺞ ﮐﺮﺩﻩ
ﺑﺒﯿﻨﯿﺪ ﻣﻦ ﯾﮏ ﺟﺪﻭﻝ ﺩﺍﺭﻡ ﺑﺎﺩﻭﺗﺎ ﺳﺘﻮﻥ ﮐﻪ ﻫﺮﺩﻭﺷﻮﻥ ﺍﺯﻧﻮﻉ ﻧﺎﻣﺮﯾﮏ ﻫﺴﺘﻨﺪ
ﺣﺎﻻ ﺩﺳﺘﻮﺭ ﺩﺭﺝ ﺑﺼﻮﺭﺕ ﺯﯾﺮ ﻫﺴﺘﺶ
insert into tbl_amanat (id,typeid)
values(n"+txtid.text" , n"+combobox1.valuemember")
ﺧﻄﺎ ﻣﯿﺪﻩ
ﮐﻤﮑﻢ ﮐﻨﯿﺪ ﻣﻤﻨﻮﻥ

saman-arsenal
یک شنبه 04 فروردین 1392, 20:35 عصر
سلام دوست عزیز
باید قبل از ریختن محتوای تکس باکست اونو convert کنی به int بعد بریزی تو دیتابیست


int32.pars(textbox1.text);

convert.toint32(textbox1.text);


موفق باشی

aghayex
یک شنبه 04 فروردین 1392, 20:37 عصر
این n رو از کجاا آوردید . این طور بنویس ببینم درست میشه :

insert into tbl_amanat values("+txtid.text+" , "+combobox1.valuemember+") "

اما بهتون توصیه می کنم از پارامترها استفاده کنید تا کرکر ها برنامه رو دور نزنن

javad13
یک شنبه 04 فروردین 1392, 20:48 عصر
ﻧﻪ ﻋﺪﺩ ﺍﯾﻨﺘﯿﺠﺮ ﻧﯿﺴﺖ
ﮔﻔﺘﻢ ﻧﺎﻣﺮﯾﮏ ﻫﺴﺘﺶ
.n
ﺭﻭﺑﺮﺩﺍﺷﺘﻢ ﺑﺎﺯﻡ ﺧﻄﺎ ﻣﯿﺪﻩ
ﻧﻮﻉ ﺩﺍﺩﻩ ﺗﻮﯼ ﺟﺪﻭﻝ ﺍﯾﻨﻪ :
numeric(9,0)

javad13
یک شنبه 04 فروردین 1392, 21:45 عصر
ﺑﺒﯿﻨﯿﺪ ﻣﻦ ﻣﯿﺨﻮﺍﻡ ﺍﯾﻦ ﺩﺍﺩﻩ ﻫﺎﺭﻭ ﺑﻪ ﯾﮏ ﮐﻼﺱ ﺍﺭﺳﺎﻝ ﮐﻨﻢ ﻭﺗﻮﯾﻪ ﺍﻭﻥ ﮐﻼﺱ ﺑﻪ ﺻﻮﺭﺕ ﭘﺎﺭﺍﻣﺘﺮﯼ ﺩﺭﺝ ﺭﻭ ﺍﻧﺠﺎﻡ ﺑﺪﻡ
ﺍﻣﺎ ﻧﻤﯿﺪﻭﻧﻢ ﺩﺭﺗﻌﺮﯾﻒ ﺗﺎﺑﻊ ﺍﻭﻥ ﮐﻼﺱ ﻧﻮﻉ ﺍﯾﻦ ﭘﺎﺭﺍﻣﺘﺮﻫﺎﺭﻭ ﭼﯽ ﺑﺰﺍﺭﻡ
ﻣﺘﻮﺟﻪ ﺷﺪﯾﺪ ﻋﺰﯾﺰﺍﻥ ؟

javad13
یک شنبه 04 فروردین 1392, 22:30 عصر
ﮐﺪﺑﺮﻧﺎﻣﻪ ﺍﺻﻠﯽ :
connectionclass conclass=new connectionclass();
conclass.insertdata("+txtid.text+","+combobox.valuemember+"),
ﮐﺪﮐﻼﺱ :
insertdata(?? id,?? valu)
sqlconnection con :new sqlconnection("");
ﻭ ﺑﻘﯿﻪ ﮐﺪﺩﺭﺝ ﺑﻪ ﺻﻮﺭﺕ ﭘﺎﺭﺍﻣﺘﺮﯼ ﺩﺭﺝ ﻣﯿﺸﻪ
ﺑﺠﺎﯾﻪ علامت ﺳﻮﺍﻝ ﭼﻩ ﻧﻮﻉ ﺩﺍﺩﻩ ﺍﯼ ﺑﺰﺍﺭﻡ ؟

javad13
یک شنبه 04 فروردین 1392, 23:43 عصر
conclass.insertdata(txtid.text,combobox1.valuememb er,checkbox1.checked);
//code class darzir amade ast
insertdata(??id,??comid,boolean ch)
sqlconnection sqlcon :new sqlcon();
sqlcommand sqlcom :new sqlcommand("insert into tbl_amanat values(@id,@tid,@t);
sqlcomm.parameters.addwithvalue("@id",id),
.....
......
sqlcom.executenonquery();

javad13
دوشنبه 05 فروردین 1392, 00:17 صبح
sqlcomm.parameters.add("@t",sqldb.bit).value:chekbox1.cheked;

ﺍﯾﻨﻢ ﻣﻘﺪﺍﺭ ﭼﮏ ﺑﺎﮐﺲ ﺭﻭ ﺩﺍﺧﻞ ﻓﯿﻠﺪ ﺟﺪﻭﻝ ﻣﯿﺮﯾﺰﻩ
ﮐﺴﯽ ﻧﺒﻮﺩ ﮐﻪ ﮐﻤﮏ ﮐﻨﻪ

veniz2008
دوشنبه 05 فروردین 1392, 03:30 صبح
ﺍﻣﺎ ﻧﻤﯿﺪﻭﻧﻢ ﺩﺭﺗﻌﺮﯾﻒ ﺗﺎﺑﻊ ﺍﻭﻥ ﮐﻼﺱ ﻧﻮﻉ ﺍﯾﻦ ﭘﺎﺭﺍﻣﺘﺮﻫﺎﺭﻭ ﭼﯽ ﺑﺰﺍﺭﻡ
ﻣﺘﻮﺟﻪ ﺷﺪﯾﺪ ﻋﺰﯾﺰﺍﻥ ؟
سلام.
معادل نوع numeric رو در سی شارپ معمولا decimal در نظر می گیرن. میتونید برای معادل انواع نوع ها به لینک زیر مراجعه کنید.
http://msdn.microsoft.com/en-us/library/ms131092.aspx




sqlcomm.parameters.add("@t",sqldb.bit).value:chekbox1.cheked;

ﺍﯾﻨﻢ ﻣﻘﺪﺍﺭ ﭼﮏ ﺑﺎﮐﺲ ﺭﻭ ﺩﺍﺧﻞ ﻓﯿﻠﺪ ﺟﺪﻭﻝ ﻣﯿﺮﯾﺰﻩ
فیلد معادل چک باکس در sql یا True یعنی 1 میگیره یا False که میشه 0. پس شما یا عدد 0 رو بفرستید یا 1 رو. میتونید اینطور بنویسید :

sqlcomm.parameters.AddWithValue("@t", Convert.ToInt32(chekbox1.cheked));
موفق باشید.

javad13
دوشنبه 05 فروردین 1392, 10:54 صبح
سلام
خوب فرض كنيدداده اولي رو stringودمي روintدادم حالا به پارامترهام بادستور :


sqlcom.parameters.add("@id",sqldb.??).value = id;
sqlcom.parameters.add("@idt",sqldb.??).value = idt;
// id , idt be sureate int , string be tabe ersal shodan hala mishe unaro be field numeric ersal kard


// id , idt be sureate int , string be tabe ersal shodan hala mishe unaro be field numeric ersal kard
?????????????????????????????????????
كسي ميتونه كدبزاره ،اين سوالو كسي ميتونه جواب بده؟؟؟؟؟؟؟؟؟؟؟؟

veniz2008
دوشنبه 05 فروردین 1392, 12:05 عصر
ببینید همونطور که دوستمون هم اشاره کردن مهم نیست چه نوعی بذارید (شما مثلا nvarchar بذار). مهم اینه که اگر فیلدی رو از نوع مثلا int تعریف کردی حتما یک عدد بفرستی (یعنی تکست باکس مربوطه رو چک کنی که یک عدد اعشاری یا ... رو نفرستی). یا اگر نوع داده ای رو numeric با 9 رقم در نظر گرفتی یک عدد 9 رقمی بفرستی و یک عدد با طول بیشتر از 9 رو نفرستی یا یک رشته غیر عددی نفرستی. پس فرقی نمیکنه نوع رو چی بگیری. ولی از لحاظ ظاهری و واسه درک بهتر خودتون، بهتره همینجا هم طبق چیزی که در Sql در نظر گرفتی داده ها رو بفرستی (هرچند ضرورتی نداره).
مثلا برای نوع داده ای که int در نظر گرفتی میتونی به هر یک از شکل های زیر عمل کنی :

sqlcom.parameters.add("@id",sqldb..NVarChar).value = id;
یا:

sqlcom.parameters.add("@id",sqldb.Float).value = id;
یعنی چه رشته بگیری چه عدد اعشاری، اگر ورودی (همون textbox ها) رو کنترل کنید و یک int وارد کنید باز هم بدرستی کار میکنه ولی اگر شخصی از بیرون به کدهای شما نگاه کنه اینطور تصور میکنه که نوع داده شما nvarchar یا float هست درحالیکه از نوع int هستش. پس بهتره همینجا هم از نوع int در نظر بگیری که خواناتر باشه:

sqlcom.parameters.add("@id",sqldb.Int).value = Convert.ToInt32(TxtID.Text);
موفق باشید.

p.alizadeh
شنبه 31 فروردین 1392, 23:05 عصر
سلام دوستان
من یه مشکلی دارم تو برنامه ام عدد اعشاری رو از کاربر می گیرم ولی در پایگاه داده یه عدد خیلی بی ربط ذخیره می کنه
برنامه رو هم خط به خط اجرا کردم تا لحظه insert هم درست کار میکنه ولی تو پایگاه (Sql 2008) درست درج نمیشه!
نوع داده رو تو برنامه ام float , Double , Decimal قرار دادم ولی هیچ فرقی نکرد
تو sql هم معادلش رو قرار دادم ولی مشکل پابرجاست ، حتی بعضی اوقات صفرش میکنه .
لطفا پاسخ من را بدهید خیلی ضروریه