تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 10 از 17 اولاول ... 67891011121314 ... آخرآخر
نمايش نتايج 91 به 100 از 164

نام تاپيک: چند سوال در مورد # C و پایگاه داده در آن

  1. #91
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    میبخشید چند روزی سرم خیلی شلوغ بود.

    این SSMS چیه؟
    (نمیدانم این را چرا دفعه قبل ندیدم!)
    SQL Server Management Studio
    برنامه ای برای مشاهده و ادیت محتویات دیتابیس

    اگر فایل متحرک باشد باعث سنگین شدن برنامه و کند بالا آمدن می شود؟
    گمان نمیکنم فرق خاصی بکند.
    بالخره در عملیات های زمان بر چیزی به کاربر نشان میدهند تا بداند برنامه کار میکند !

    برای بسته شدن این فرم متد خاصی وجود داره یا باید خودمون متدشو بنویسیم؟
    مثل یک فرم عادی نمایش میدهید و میبندید !

    زیر می یاد .من نفهمیدم چی میگه.ممنون می شم کمک کنید
    چون من تو یه فرم دیگه هم این error رو دارم.
    اصولاً روش جمع String برای ساخت دستور SQL و اجرای ان روش صحیحی نیست و نباید استفاده شود.
    نمونه ای از روش کدنویسی صحیح پارامتری را میتوانید در تاپیک زیر و پست 8 مشاهده کنید:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    همون 4 تا text و label رو داریم یعنی دکمه و checkbox رو هم نداریم
    1) مطمئن شوید برنامه خطا و مشکل سینتکسی ندارد ...
    اگر برنامه مشکل و خطایی نوشتاری داشته باشد، کامپایل نخواهد شد و دیالوگ هشداری نمایش داده میشود که Yes و No دارد و میگوید برنامه خطای نوشتاری دارد و کامپایل نشده و اگر میخواهید آخرین نسخه قبلی ان را نمایش دهد.
    مطمئن شوید مشکل شما این مورد نبوده

    2) کل پروژه را صراحتاً و مستقیم کامپایل کنید.
    Build->Build Solution

  2. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  3. #92
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض

    با سلام دوباره

    سلام به همه دوستان مشکل من اینه که حروف فارسی در بانک اطلاعاتی به صورت علامت سوال دیده میشه
    برای حل این مشکل دو راه حل به من پیشنهاد کردند:

    1- نوع فیلدها را موقع تعریف nvarchar باشد، که من موقع ایجاد جدولها این کار رو کردم
    2- در regional and language تب سوم (advance) زبان را فارسی انتخاب کنیم ، که این کار رو هم موقع نصب ویندوز من خودم انجام میدم

    مسئله جالب اینجاست که اگه در محیط خود SQLserver در جدولها اطلاعات فارسی وارد میکنی ، درست نوشته میشه و درست هم ذخیره میشه ولی وقتی از طریق فرمها (درC # ) این کار رو انجام می دی به صورت علامت سوال در جدول ذخیره میشه.

    ممنون میشم منو راهنمایی کنید

  4. #93
    آخر فروم باز
    تاريخ عضويت
    Aug 2008
    محل سكونت
    Tehran
    پست ها
    2,419

    پيش فرض

    با سلام دوباره

    سلام به همه دوستان مشکل من اینه که حروف فارسی در بانک اطلاعاتی به صورت علامت سوال دیده میشه
    برای حل این مشکل دو راه حل به من پیشنهاد کردند:

    1- نوع فیلدها را موقع تعریف nvarchar باشد، که من موقع ایجاد جدولها این کار رو کردم
    2- در regional and language تب سوم (advance) زبان را فارسی انتخاب کنیم ، که این کار رو هم موقع نصب ویندوز من خودم انجام میدم

    مسئله جالب اینجاست که اگه در محیط خود SQLserver در جدولها اطلاعات فارسی وارد میکنی ، درست نوشته میشه و درست هم ذخیره میشه ولی وقتی از طریق فرمها (درC # ) این کار رو انجام می دی به صورت علامت سوال در جدول ذخیره میشه.

    ممنون میشم منو راهنمایی کنید
    نباید این مشکل بوجود بیاد ولی با گذاشتن N قیل از پارامتر مشکل حل مشه.

  5. این کاربر از milky way بخاطر این مطلب مفید تشکر کرده است


  6. #94
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    مسئله جالب اینجاست که اگه در محیط خود SQLserver در جدولها اطلاعات فارسی وارد میکنی ، درست نوشته میشه و درست هم ذخیره میشه ولی وقتی از طریق فرمها (درC # ) این کار رو انجام می دی به صورت علامت سوال در جدول ذخیره میشه
    همانطور که جناب milky way هم متوجه شدند، شما متاسفانه متاسفانه متاسفانه از روش جمع String دستورات SQL استفاده میکنید. (که راه حلش درج N قبل از عبارت است)

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

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

  7. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  8. #95
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض

    سلام

    همانطور که جناب milky way هم متوجه شدند، شما متاسفانه متاسفانه متاسفانه از روش جمع String دستورات SQL استفاده میکنید.
    جناب H2 این جمله شما منو شدیدا تحت تاثیر قرار داد پس رفتم از روش به قول پارامتری استفاده کردم
    (من قبلا بی خیال این کار بودم چون می دانستم تایپ خیلی زیادی داره )

    بخاطر همه کمکهای شما وسایر دوستان ممنون
    Last edited by sanam.b; 01-10-2009 at 22:13.

  9. #96
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    من قبلا بی خیال این کار بودم چون می دانستم تایپ خیلی زیادی داره
    شاید به ظاهر کمی بیشتر باشد ولی مطمئن باشید ارزشش را دارد !

    1) جمع String هم زیاد کم نمیشودو ان هم کدنویسی زیادی دارد.
    2) جمع String معمولاً بسیار مستعد خطاهی انسانی و تایپی است.
    3) جمع String عموماً از چند منظر بازدهی سرعتی پایین تری دارد و اگر در روش پارامتری از SP داخل SQLServer استفاده شود که دیگر نور علی نور خواهد شد!
    4) جمع String مستعد ضعف امنیتی و هک برنامه با "تزریق" است
    5) جمع String برای مقادیر خاص String با کراکترهای خاص مستعد خطای runtime است.
    6) جمع String برای مواردی مثل تاریخ و با توجه به تنظیمات ویندوز میتواند مشکل ساز شود، ضمن اینکه برای همه انواع غیر عددی و متنی (Guid و binary و...) میتواند مشکل ساز شود.

    ... یه Warning میده ... obsolete ...
    این هشدار بیان میکند که متد و overload مورد استفاده شما (متد Add و نام+مقدار) وجود داشته و دارد ولی با توجه به سیاستهای جدید ساختاری این متد دیگر متد مناسبی برای انجام عمل مذکور نیست و حتی امکان دارد در نسخه های آینده Framework این متد کلاً حذف شود.

    حلش هم ساده است!
    پیشنهاد میکنم از همان overload ای استفاده کنید که من در پست قبلی ام استفاده کردم.
    یعنی نام و نوع را بدهید و سپس در مقدار بازگشتی مقدار را تنظیم کنید، هم ساده و کوتاه است و هم به علت مشخص کردن نوع بسیار خوب است و مشخص کردن نوع اصلی ترین معیار پس از نام است.
    (البته overload های بهتری وجود دارد ولی کدنویسی بیشتری میخواهد)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    (البته با استفاده از using System.Data تایپتان کمترهم خواهد شد.)

    موفق باشید.

  10. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  11. #97
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض

    بازم سلام

    چون من با روش پیشنهادی شما اصلا آشنا نیستم، .یک بار کدها رو نوشتم (به شکل زیر ) اما دو تاerror داشت ممنون میشم کد تصحیح کنید( البته با توجه به برنامه خودم نوشتم)
    SqlConnection hemophili = new SqlConnection("Server=.;Database=kanon;User ID=sa; Password=*******");
    SqlCommand hcom = new SqlCommand();
    hcom.Connection = hemophili;
    var dbcom = new System.Data.SqlClient.SqlCommand(sql);

    hcom.CommandText = "INSERT INTO Komakhaye_eraeshode( date,numozviyat,noeozviyat,noekomak,numname,dname, dkomak,onvanename,kholasename,shomaresanad,mablaqh ,daryaftkonande,onvanedaryaft)"
    + "VALUES(@date,@numozviyat,@noeozviyat,@noekomak,@n umname,@dname,@dkomak,@onvanename,@kholasename,@sh omaresanad,@mablaqh,@daryaftkonande,@onvanedaryaft )";

    dbcom.Parameters.Add("@date", SqlDbType.NVarChar).value = textBox134.Text;

    error اول در خط
    var dbcom = new System.Data.SqlClient.SqlCommand(sql);
    The name 'sql' does not exist in the current context
    (sql)رو خودم نوشتن چون در منویی که باز میشه وجود نداشت
    Error دوم در خط
    dbcom.Parameters.Add("@date", SqlDbType.NVarChar).value = textBox134.Text;

    'System.Data.SqlClient.SqlParameter' does not contain a definition for 'value' and no extension method 'value' accepting a first argument of type 'System.Data.SqlClient.SqlParameter' could be found (are you missing a using directive or an assembly reference?)
    من چند تا سوال هم داشتم
    1- من به غیر از
    using System.Data.Sql;
    using System.Data.SqlClient;
    باید فضای دیگه ای رو هم معرفی کنم
    2- اصلا تعریف SqlCommand hcom و پارامترهای اون ضروریه؟

  12. #98
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    نقل قول نوشته شده توسط sanam.b
    ممنون میشم کد تصحیح کنید
    من فقط متوجه نشدم چرا دوتا SqlCommand را دو بار new کرده اید؟؟؟ hcom چیست و dbcom چیست؟

    نقل قول نوشته شده توسط sanam.b
    error اول در خط
    The name 'sql' does not exist in the current context
    (sql)رو خودم نوشتن چون در منویی که باز میشه وجود نداشت
    بدون هیچ شک و تردید نماد sql در برنامه شما تعریف نشده و این مشکل شما ربطی به روش پارامتری و غیر پارامتری هم ندارد.
    با توجه به سوال بعدیتان من تصور میکنم به کوچکی و بزگی حروف دقت نکرده اید، فراموش نکنید که C#.Net به بزرگی و کوچکی حروف حساس است.

    نقل قول نوشته شده توسط sanam.b
    Error دوم در خط
    does not contain a definition for 'value' and no extension method 'value' accepting
    مشکل ارتباطی به روش پارامتری ندارد !
    شما از VS استفاده میکند یا Notepad ؟؟؟؟؟ واقعاً میپرسم؟
    وقتی نقطه بزنید باید در لیست Value را ببینید و با یک Tab خودش تایپ کند !!!!
    در واقع شما حرف V را کوچک تایپ کرده اید و C#.Net برخلاف VB.Net به بزرگی و کوچکی حروف حساس است ولی برای کسانی که از VS استفاده میکنند با توجه به امکانات عادی تایپ کد معمولاً همچین مشکلاتی به وجود نمی آید !
    اگر با VS کار میکنید، نقطه میزنید لیست باز میشود؟ اگر لیستی باز نمیشود احتمالاً تنظیمی را عوض کرده اید ؟!!

    نقل قول نوشته شده توسط sanam.b
    1- من به غیر از
    using System.Data.Sql;
    using System.Data.SqlClient;
    باید فضای دیگه ای رو هم معرفی کنم
    سلیقه خودتان است.
    من شخصاً هیچ فضایی را (بجز using System) وارد نمیکنم و ترجیح میدهم کدهای کامل و یک دست بنویسم !
    شما اگر دوست دارید میتوانید هر فضای نامی را با using (یا Imports در VB) در بالای کدتان وارد کند تا در کدنویسی نیاز به تایپ کامل نام اعضای داخل ان فضا نداشته باشید.

    نقل قول نوشته شده توسط sanam.b
    2- اصلا تعریف SqlCommand hcom و پارامترهای اون ضروریه؟
    اگر منظورتان استفاده نکردن از روش پارامتری و استفاده از جمع String است ... (؟؟؟) به نظر شخصی من و احتمالاً برخلاف نظر شما (!) روش پارامتری خیلی ساده تر است و کدنویسی راحت تری هم دارد ولی اگر برای شما سخت است ...
    نقل قول نوشته شده توسط _H2_
    1) جمع String هم زیاد کم نمیشودو ان هم کدنویسی زیادی دارد.
    2) جمع String معمولاً بسیار مستعد خطاهی انسانی و تایپی است.
    3) جمع String عموماً از چند منظر بازدهی سرعتی پایین تری دارد و اگر در روش پارامتری از SP داخل SQLServer استفاده شود که دیگر نور علی نور خواهد شد!
    4) جمع String مستعد ضعف امنیتی و هک برنامه با "تزریق" است
    5) جمع String برای مقادیر خاص String با کراکترهای خاص مستعد خطای runtime است.
    6) جمع String برای مواردی مثل تاریخ و با توجه به تنظیمات ویندوز میتواند مشکل ساز شود، ضمن اینکه برای همه انواع غیر عددی و متنی (Guid و binary و...) میتواند مشکل ساز شود.
    نمونه اصلاح شده کد خودتان با روش و علایق خودتان ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  13. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  14. #99
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض

    بازم سلام

    من فقط متوجه نشدم چرا دوتا SqlCommand را دو بار new کرده اید؟؟؟ hcom چیست و dbcom چیست؟
    دوست عزیز من زیاد SQL بلد نیستم و کم دقتی من رو ببخشید
    من شک کرده بوده م اما مطمئن نبودم به همین دلیل سوال پایین رو پرسیده بودم.

    اصلا تعریف SqlCommand hcom و پارامترهای اون ضروریه؟
    اگر منظورتان استفاده نکردن از روش پارامتری و استفاده از جمع String است ... (؟؟؟) به نظر شخصی من و احتمالاً برخلاف نظر شما (!) روش پارامتری خیلی ساده تر است و کدنویسی راحت تری هم دارد ولی اگر برای شما سخت است ...
    منظور من استفاده نکردن از روش پارامتری نبود، منظور من از پارامترها این بود که لازمه یه بار hcom رو تعریف کنی یک بار connection رو و یه بار دیگه CommandText اونو معرفی کنی که اونهم جواب سوالم رو گرفتم، ممنون

  15. #100
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض

    سلام
    من دوباره اومدم و باز هم یه سوال
    فیلدهایی که در بانک اطلاعاتی دارای نوع tinyint اینطوری مقدار دهی می شن.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی اگه در هنگام ورود اطلاعات اگه چیزی در اونها نوشته نشه این
    رو می ده (تو بانک اطلاعاتی اجازه خالی بودن به اونها داده شده است )

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    من دونم چون textbox خالیه هنگام تبدیل اون به int این مشکل پیش می یاد ولی
    من چطور باید این مشکل رو حل کنم شاید یکی این مشخصات رو نداشته باشه انوقت باید چی نوشته بشه؟

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •