PDA

نسخه کامل مشاهده نسخه کامل : اولین سوال



r.gh45
27-07-2008, 16:39
سلام
اول به شمادوستان برای داشتن این فروم فعال تبریک میگم و امیدوارم من هم با شرکت در سوال و جواب هم مشکلات خودمو(اهتمالا خیلی زیاد هم باشه) رفع کنم و هم اگه تونستم به سوال های بقیه هر چند کم جواب بدم

اولین سوال: من می خوام بانک اطلاعاتی رو به صورت فارسی select و Updae کنم الته قبلا داده ها رو به وسیله table adapter به صورت فارسی اضافه می کنم
کد های زیر برای select و update به صورت انگلیسی استفاده کردم اما برای داده های فارسی هیچ کدوم کار نمیکنه اکه کسی به تونه کمک کنه ممنون می شم
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = " select *from table1 where name='" + textBox1 .Text + "'";
cmd.Connection = sqlConnection1;
sqlDataAdapter1.SelectCommand = cmd;
froshDataSet5.Clear();
sqlDataAdapter1.Fill(froshDataSet5);


SqlCommand cmd1 = new SqlCommand();
cmd1.CommandType = System.Data.CommandType.Text;
cmd1.CommandText = " update table1 SET name='" + textBox2.Text + "'where name='" + textBox1.Text + "'";
cmd1.Connection = sqlConnection1;
sqlConnection1.Open();
cmd1.ExecuteNonQuery();
sqlConnection1.Close();
f3jansDataSet2.Clear();
sqlDataAdapter1.Fill(f3jansDataSet2

_H2_
27-07-2008, 18:30
سلام
1- فیلدهای دیتابیس باید از نوع nxxxxx باشند، مثل nchar و nvarchar و ntext
2- در مقدار دهی های رشته ها، بهتر است (و به نظر من واجب) که از روش پارامتری استفاده شود.
3- برای مقدار دهی های مرسوم در SQL به صورت دستی باید کاراکتر N قبل از شروع رشته اورده شود.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

r.gh45
28-07-2008, 07:24
مرسی مختصر و مفید بود
موفق باشید

Bracket
28-07-2008, 12:13
سلام
1- فیلدهای دیتابیس باید از نوع nxxxxx باشند، مثل nchar و nvarchar و ntext
2- در مقدار دهی های رشته ها، بهتر است (و به نظر من واجب) که از روش پارامتری استفاده شود.
3- برای مقدار دهی های مرسوم در SQL به صورت دستی باید کاراکتر N قبل از شروع رشته اورده شود.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدموفق باشید.
سلام به سوال دارم این کاراکتر N برای SQL2000 هست یا 2005 هم هست من اینو میدونستم از قبل یعنی وقتی داشتم یادمیگرفتم خونده بودم که از N باید پشت کاراکتر یونی کد استفاده کرد ولی اون زمان SQL2000 بود الان 2005 کار میکنم یادم نمیاد هیچ وقت از N استفاده کرده باشم برام جالبه اینو بدونم مرسی .

_H2_
29-07-2008, 02:13
سلام
من خودم هم بسیاری از خواص را یادم میرود در چه سالی و اولین بار در کدام نسخه اضافه شده بود،
حالا شما برای 2000 یادتان نیست، من برخی مباحث را یادم نیست در Vs2005 بوده یا در Vs2008 اینطور شده!!!!!

ولی در این مورد خاص، به خوبی یادم است!! نماد N در نسخه 2000 وجود داشته و احتمالاً در نسخه 2000 هم اولین حضورش نبوده است.

mina_ghorbani
09-08-2008, 18:35
یعنی توی تمام جاها مثلا dataAdapter ها و جاهایی که data row را مقدار می دیم باید N fbhvdl?
مثل این؟
DrDaroo["NameDaroo"] = TxtName.Text;
یه چیز دیگه اگه تایپ یه ستونی رو date time بگیرم چه جوری بهش مقدار بدم ؟

mina_ghorbani
09-08-2008, 19:28
یه چیزی من تو کامپیوتر شرکت امتحان کردم اونجا varchar فارسی می نوشت
اما تو خونه باید nvarchar باشه
برام سوال پیش اومد مشکل که از کامپیوترم نیست؟

mina_ghorbani
09-08-2008, 20:31
ok این رو درست کردم فقط یه چیزی varchar بود nvar کردم ولی بازم درس نشد تو همون جدول نامش درست می شه اما کدش نه
هر دو تاشونم nvarchar

_H2_
09-08-2008, 22:45
سلام


یعنی توی تمام جاها مثلا dataAdapter ها و جاهایی که data row را مقدار می دیم باید N fbhvdl?

نماد N فقط و فقط در دستورات صریح و مستقیم sql استفاده میشود، مثل همان پست دوم تاپیک.
استفاده از آن در هر جای دیگر یک خطا به دنبال دارد، حتی در روش پارامتری



یه چیز دیگه اگه تایپ یه ستونی رو date time بگیرم چه جوری بهش مقدار بدم ؟

روش پارامتری.
پایه و اساس انتقال اطلاعات از برنامه به موتور پردازش sql روش پارامتری است، نه اینکه خودتان بیایید و رأساً دستور sql مربوطه را بسازید.
حتی در مورد مقادیر string هم روش پارا متری بسیار بهتر است و نگرانی درج کاراکترهای خاص را هم رفع میکند.
یا برای ریختن یک فایل در دیتابیس، باز روش پارامتری مطمئن تر است و با تغییر برنامه و ورژن و دیتابیس، تغییری نمیکند.

برای ارسال پارامتر باید نام-مقدار-نوع و... را به خصیصه Parameters شی Command اضافه کرد.




یه چیزی من تو کامپیوتر شرکت امتحان کردم اونجا varchar فارسی می نوشت
اما تو خونه باید nvarchar باشه

varchar مقادیر را اسکی نگاه میدارد، شاید در یک سیستم با تنظیمات خاص ویندوز جواب دهدف ولی هیچ تضمینی بر حفظ اطلاعات و نمایش صحیح آن در مکان های دیگر نیست.
حتماً برنامه های معروف و نیمه معروف را دیده اید که به جای متن علامت سوال در همه جایشان نشان داده میشود، این پیادهای استفاده نکردن از سیستم Unicode است.



... اما کدش نه

میشه بیشتر توضیح بدید؟

mina_ghorbani
09-08-2008, 23:33
خیلی ممنون باید تو فرمام dataAdapter جدید که جدولش varchar دارمو می ذاشتم

mina_ghorbani
09-08-2008, 23:47
می دونید منظورم چیه؟ می گم تاریخ رو خودم دستی تو برنامه بنویسم؟ یا اینکه بگم اونو از تاریخ سیستم بخونه اگه دستی باید کاربر بنویسه چه جوری بنویسه که اشتباه نشه یعنی قبول کنه چون یه بار قبلنا تاریخ رو همون date time داده بودم ولی نمی تونستم توش چیزی بنویسم

mina_ghorbani
10-08-2008, 06:50
چه جوری می شه سال فقط دو تا عدد نشون بده و تایم رو هم نشون نده؟

r.gh45
10-08-2008, 11:49
سلام


می دونید منظورم چیه؟ می گم تاریخ رو خودم دستی تو برنامه بنویسم؟ یا اینکه بگم اونو از تاریخ سیستم بخونه اگه دستی باید کاربر بنویسه چه جوری بنویسه که اشتباه نشه یعنی قبول کنه چون یه بار قبلنا تاریخ رو همون date time داده بودم ولی نمی تونستم توش چیزی بنویسم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این کد تاریخ جاری سیستم تو بانک شما ذخیره می کنه به شرط این که connection درست مقدار دهی کنید.
خط 1 کد تاریخو می گیره و در خط 4 اونو به عنوان یک پارامتر به sqlcomand میده
اگه در بقیه کد مشکل داشتید بگید تا توضیح بدم

چه جوری می شه سال فقط دو تا عدد نشون بده و تایم رو هم نشون نده؟


دو تا عدد ؟
تا اونجا که من می دونم متغیر نوع datetime دارای پارامتر های year,mounth,day,hour,minute,secoundو milisecound است وشما باید با هر 6 تای اون به صورت هم زمان کار کنید اما اگر فقط سال رو به صورت int میخواید می تونید از پارامتر اون به صورت تنها استفاده کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید:8:

mina_ghorbani
10-08-2008, 16:04
منظورم اینه که به جای 1985 نشون بده 85
یه مشکل دیگه برام پیش اومده اصلا نمی فهمم از کجاس یه View اد کردم که قبلا هم اد کردم همشونم دارن کار می کنن اما این یکی نمی دو نم چشه از خط اول تو فرم لود که می خواد فیل کنه یا هر جای دیگه که خودم می نویسم پر کنه ایراد می گیره وییویی که تو اس کیو ال ساختم اینه این که ایرادی نداه؟
تو خود اس کیو ال جواب می ده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

r.gh45
10-08-2008, 16:32
سلام
بعد از اینکه به وسیله کد بالا سال بدست آوردید باقیمانده اونو بر 100 بدست بیاورید .در مورد View هم اونو از نظر املایی چک کنید .منظورم املای رکورد ها یی که تعریف کردید با املای دستوراتی که نوشتید(بیشترین مشکلی که برای خودم در کار با sql پیش اومده این شکلی بوده ) .

mina_ghorbani
10-08-2008, 17:39
آخه درست کار میکنه تو sql
حالا یه چیز دیگه تو crystal report چه طور می شه از sql دیتا بیسی اضافه کرد واسه من نداره vs2005 هم هست اصلا sql نداره فقط می شه از دیتا ست چیزی رو اضافه کرد تازه اونم توش خالیه

mina_ghorbani
10-08-2008, 22:57
فقط factor sn رو پاک کردم درست شد ولی بازم نفهمیدم چرا ایراد داشت