درباره نویسنده

سیدسروش سیدصدر

سروش صدر

برنامه نویس و مدرس زبان های برنامه نویسی دات نت -  فارغ التحصیل رشته مهندسی نرم افزار از دانشگاه آزاد قزوین (باراجین) 

29 دیدگاه

  1. عاطفه حسن پور

    عاطفه حسن پور

    با سلام بسیار عالی بود مدت ها مشکلی و البته یک اشتباه کوچک داشتم که با این مقاله حل شد باتشکر   

    پاسخ
    1. سیدسروش سیدصدر

      سیدسروش سیدصدر

      با سلام
      خواهش میکنم
      بسیار عالی

      پاسخ
  2. مهدی ربانی ذبیحی

    مهدی ربانی ذبیحی

        باسلام جناب مهندس خسته نباشید هم بابت محصول خوبی که در نیک اموز ارائه کردید و  هم بابت مقاله خوب تون.

    پاسخ
    1. سیدسروش سیدصدر

      سیدسروش سیدصدر

      با سلام
      خواهش میکنم
      لطف دارید 🙂

      پاسخ
  3. محمدرضا خاکپور

    محمدرضا خاکپور

       میشه دیتابیس رو کنار فایل برنامه گذاشت یا در پوشه کنار اون و با استفاده از
    application.startup مسیر پروژه رو در کانکشن استرینگ استفاده کرد.

    پاسخ
    1. فرشید علی اکبری

      فرشید علی اکبری

      دوست عزیز، اینم میتونه یکی دیگه از گزینه هاش باشه ولی اگه به هردلیل دیتابیس بصورت دستی جابجا شد چی؟ بازم پیشنهاد شما عملیه؟ فرض کنید شما نرم افزارتون رو در شرکت بنده در مسیر C:\xCRM نصب میکنید و بنده به عنوان مسئول آی تی، مدتی بعد بنا به هر دلیلی بانک اطلاعاتی رو از داخل مسیر نرم افزار به درایو ومسیر هارد دیسک دیگه ای انتقال داده و اونو Attach میکنم. حالا وارد نرم افزار شما میشم، آیا بازم به بانک اطلاعاتیش کانکت میشه؟ مسلماً خیر؛ بنابراین بهترین روش اینه که حتماً در نرم افزارتون یک بخش مستقل برای این منظور درنظر بگیرید تا درصورت عدم اتصال به بانک مورد نظر، (حالا یا درحالت دستی و یا خودکار) فرم تنظیمات دسترسی و تست اتصال به بانک مورد نظردر اون قرار داشته باشه که تصویر قرار داده شده در آخر همین مقاله، بصورت کاملاً ساده وگویا اینمورد را گوشزد کرده است.
      پاسخ
  4. محمد رضا رزقی

       سلام با عرض خسته نباشید 

    من یه پروژه خبری دارم که برروی دو سرور قرار انجام بشه یکی برای ارشیو و یکی هم برای نشان دادن چگونه میتونم بین این دو سرور ارتباط برقرار کنم
    با تشکر 
    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      محمد رضا جان سلام

      برای انجام اینکار می توانید از قابلیت های زیر استفاده کنید
      1- استفاده از ADO.NET Bulk Insert : سرعت بالا+ به راحتی از آن در محیط C# می توانید استفاده کنید.
      2- استفاده از SSIS : ایجاد پکیج SSIS و جاب کردن آن روی سرور برای آرشیو دیتا (سریعترین راه حل + انجام کار با سرعت بالا)
      3- استفاده از Linked Server ک استفاده بد = کاهش شدید کارایی
      برخی از این موارد در دوره SQL Server ویژه برنامه نویسان بررسی شده است
      پاسخ
  5. فرشید علی اکبری

    فرشید علی اکبری

     سلام

    البته این می تونه ساده ترین و کوتاهترین راه برای اینمورد باشه ولی من خودم ترجیح میدم مشخصات ConnectionString رو در بصورت کاملاً Encrypt شده در یک فایل و به دور از دسترس سایرین قرار بدم تا (مطابق با مشاهدات قبلی) کمتر با کاربران خاطی به مشکل بخورم.
    پاسخ
  6. آموزش آشپزی

    ممنون آموزش خوبی بود

    پاسخ
  7. مصطفی

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

    پاسخ
    1. آرزو محمدزاده

      آرزو محمدزاده

      با سلام و عرض ادب

      این مقاله برای زمانی است که شما با اطلاعات Connection String خود که قبلا ایجاد کردید وارد نرم‌افزار می‌شوید و سپس می‌خواهید در زمان اجرا به دیتابیس دیگری متصل شوید برای همین نیاز به وارد کردن اطلاعات جدید دارید

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

      پاسخ
      1. مصطفی

        مرسی
        لطف کردین

      2. علی

        سلام. من تو برنامه م نیاز دارم که در هنگام ورود کاربر برای اولین بار بانک خودش رو به سیستم شناسایی کنه و بعد برای دفعات بعد اجرای برنامه به همون بانک وصل بشه.
        از روش شما استفاده کردم. ولی بعد از بستن برنامه سیستم دوباره برمیگرده به تنظیمات پیشفرض و به همون Connection String که در فایل app.config ذخیره شده بود وصل میشه. در صورتیکه من میخوام بعد از انجام تغییرات، فایل app.config هم تغییر کنه و دفعات بعد با این فایل وارد بشه.
        میشه راهنماییم کنید که چیکار باید کنم؟

      3. آرزو محمدزاده

        آرزو محمدزاده

        با سلام و عرض ادب
        به نقل از مهندس سروش صدر

        شما می توانید اطلاعات کانکشن رو در یک فایل xml قرار داده و در فولدر debug ذخیره کنید و در کد هر بار از همان فایل اطلاعات را خوانده و تغییر نکند.

  8. ابراهیم

    مهندس دست شما درد نکنه آیا این برنامه برای سی شارپ است یا ای اس پی دات نت

    پاسخ
    1. آرزو محمدزاده

      آرزو محمدزاده

      سلام و عرض ادب
      به نقل از مهندس سروش صدر

      برای windows application است یعنی سی شارپ.

      پاسخ
  9. ابراهیم

    با عرض سلام و خسته نباشید مهندس لطف می کنید با سی شارپ یک برنامه هم برای بک آپ و بازیابی از هر دیتابیس اس کیو ال سرور که مدنظر است قرار دهید(یعنی از طریق یک تکست باکس اسم دیتابیس رو بگیره و قادر به ذخیره گرفتن یا بازیابی دیتابیس باشیم)

    پاسخ
  10. ابراهیم

    سلام و خسته نباشید ، راهنمایی کنید که از طریق یک کمبوباکس یا یک لیست باکس چطور می توانم لیست دیتابیس های روی هارد رو پیدا کنم و بتوانم هر دیتابیسی رو اتچ نمایم و یا برعکس لیست دیتابیس های متصل به اس کیو ال سرور را پیدا کنم و هر کدام که خواستم دی تچ نمایم با تشکر

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      1- شما باید به Instance مورد نظر وصل شوید
      2- از DMVزیر استفاده کنید
      Select * from sys.databases
      3- اون ها را به کمبوباکس اضافه کنید
      4-از دستور زیر برای Detach استفاده کنید
      https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-detach-db-transact-sql?view=sql-server-2017

      5-برای Attach باید MDF و LDF بدهید و از دستور زیر استفاده کنید

      https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-attach-db-transact-sql?view=sql-server-2017

      این روش ساده ترین رواال انجام کار است

      پاسخ
  11. ebrahim

    دست همگی شما درد نکنه ، کاش برای اتچ یا دی تچ دیتابیس در اس کیو ال سرور و تنظیم کانکشن استرینگ یک برنامه همراه با توضیحات قدم به قدم برای افراد مبتدی مثل من قرار می دادید .

    پاسخ
  12. اسد

    درود
    توضیح: بانک من در sql server 2014 می باشد
    1. دسترسی و شناسایی و استفاده از یوزر برای بانک را تنظیم کرده ام که بوسیله sql server یوزر وارد شود و بتواند از راه دور هم دسترسی بگیرد
    2. در تنظیمات، برای TCP هم enable کرده ام و پورت مورد نظر را 1433 وارد کرده ام
    3. در فایروال دسترسی به پورت را باز کرده ام و دسترسی به sql server را نیز فعال ساخته ام
    حالا وقتی از داخل Visual C# که روی یکی از سیستمهای درون شبکه در حال اجرا است به سرور اتصال می دهم و اتصال می سازم سرور شناسایی می شود و اطلاعات جداول را می توانم ببینم و بخوانم،
    ولی وقتی بوسیله برنامه نوشته شده رشته اتصال را بر اساس IP و پورت سرور تنظیم می کنم (همانند رشته اتصال زیر ؛
    conect = new SqlConnection(@”Data Source=” + address + “;Initial Catalog=mebank;” + “Integrated Security=True;User ID=myUser;Password=mypassword;”);
    • connect یک مقدار رشته ای است برای استفاده در طول برنامه!
    • بجای address ، مقدار IP و پورت قرار می گیرد (مثلا 172.31.85.30,1433)
    این IP را می توان در برنامه وارد کرد تا برنامه بتواند از آن استفاده کند.
    حالا وقتی برنامه اجرا می کنم و می خواهم به اطلاعات دسترسی داشته باشم خطای زیر داده می شود!!!
    System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 – The remote computer refused the network connection.) —> System.ComponentModel.Win32Exception (0x80004005): The remote computer refused the network connection
    بسیار سپاسگزار می شوم راهنمایی بفرمایید چطور از این مخمصه رها شوم؛
    ایا رشته اتصالم مشکلی دارد و چیزی کم دارد؟ یا مشکل از چیز دیگری است

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      برای تست از Telnet استفاده کنید
      منظورتان از راه دوره یعنی اینترنت و… بهتر است چک این کار را با Telnet برای اون پورت مورد نظر انجام دهید در برخی مواقع در Connection اشاره به شماره پورت می تونه مشکل را حل کنه ,…
      ضمنا خطای شما یک مشکل شبکه ای است و این نشون میده که اون کلاینت دسترسی به اون سرور ندارد بهتر است با Telnet چک کنید ببینید اوضاع چگونه است و از دوستان شبکه کمک بگیرید

      پاسخ
  13. مسعود

    سلام مهندس . من برنامه ایی نوشتم که کانکشن استرینگ رو از یک فایل text می خونه . چطور میتونم بصورت سراسری این کانکشن رو به برنامه معرفی کنم چون وقتی که یک فرم ایجاد میکنم و میخوام با دیتابیس ارتباطش بدم دنبال کانکشن استرینگ میگرده ؟ تشکر

    پاسخ
  14. مرادی

    سلام من یک دیتابیس در sql 2017 ساختم و بعد از ساخته شدن compatibility انرا روی 2008 گذاشتم حالا یک سوال و یک مشکل دارم لطفا جواب بدهید.
    1- آیا گزینه فوق باعث میشود من نتوام از امکانات مربوط به 2017 در دیتابیسم استفاده کنم. مثل ایندکسهای جدید تعریف شده
    2- mdf و ldf را وقتی به اس کیو ال 2014 و 2008 میبرم خطای عدم سازگاری میدهد حتی بکاپ ریستور هم بدین صورت است حتی در سیستم مقصد به فایلها دسترسی مجاز همان ادمین را دادم و ssms هم با run as admin اجرا کردم اما نمیشه فقط با اسکریپت تونستم به 2014 و 2008 بیارم که چون اطلاعات داخل زیاد هست عملا باید فقط ساختارها را بدون اطلاعات بیارم که بی فایده است
    لطفا راهنمایی بفرمائید با تشکر

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      1-پاسخ سوال اول
      در برخی موارد بلی، توصیه من به شما این است که با Compatibility 2017 هم برنامه را چک کنید و ….

      2- پاسخ سوال دوم
      انتقال فایل های فیزیکی دیتابیس و بکاپ از نسخه بالا به پایین امکان ندارد طبیعی است … هدر فایل با نسخه بالا بازنویسی شده و…
      استفاده از اسکریپت ، ویزارد Import,Export و…

      پاسخ
  15. arman

    سلام خسته نباشید من یه بروژه درست کردم ولی APP.config نداره راهنمایی کنید

    پاسخ

ارسال یک نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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