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

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

سروش صدر

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

29 Comments

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

    عاطفه حسن پور

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      مسعود طاهری

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

      برای انجام اینکار می توانید از قابلیت های زیر استفاده کنید
      ۱- استفاده از ADO.NET Bulk Insert : سرعت بالا+ به راحتی از آن در محیط C# می توانید استفاده کنید.
      ۲- استفاده از SSIS : ایجاد پکیج SSIS و جاب کردن آن روی سرور برای آرشیو دیتا (سریعترین راه حل + انجام کار با سرعت بالا)
      ۳- استفاده از 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. مسعود طاهری

      مسعود طاهری

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

      ۵-برای 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 می باشد
    ۱٫ دسترسی و شناسایی و استفاده از یوزر برای بانک را تنظیم کرده ام که بوسیله sql server یوزر وارد شود و بتواند از راه دور هم دسترسی بگیرد
    ۲٫ در تنظیمات، برای TCP هم enable کرده ام و پورت مورد نظر را ۱۴۳۳ وارد کرده ام
    ۳٫ در فایروال دسترسی به پورت را باز کرده ام و دسترسی به 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 و پورت قرار می گیرد (مثلا ۱۷۲٫۳۱٫۸۵٫۳۰,۱۴۳۳)
    این 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 انرا روي ۲۰۰۸ گذاشتم حالا يک سوال و يک مشکل دارم لطفا جواب بدهيد.
    ۱- آيا گزينه فوق باعث ميشود من نتوام از امکانات مربوط به ۲۰۱۷ در ديتابيسم استفاده کنم. مثل ايندکسهاي جديد تعريف شده
    ۲- mdf و ldf را وقتي به اس کيو ال ۲۰۱۴ و ۲۰۰۸ ميبرم خطاي عدم سازگاري ميدهد حتي بکاپ ريستور هم بدين صورت است حتي در سيستم مقصد به فايلها دسترسي مجاز همان ادمين را دادم و ssms هم با run as admin اجرا کردم اما نميشه فقط با اسکريپت تونستم به ۲۰۱۴ و ۲۰۰۸ بيارم که چون اطلاعات داخل زياد هست عملا بايد فقط ساختارها را بدون اطلاعات بيارم که بي فايده است
    لطفا راهنمايي بفرمائيد با تشکر

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

      مسعود طاهری

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

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

      پاسخ دادن
  15. arman

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

    پاسخ دادن

ارسال نظر

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

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

به دلیل جلوگیری از شیوع ویروس کرونا، همایش معماری میکروسرویس به صورت آنلاین برگزار خواهد شد.
اطلاعات بیشتر
close-image