نمایش نتایج 1 تا 13 از 13

نام تاپیک: مشکل ست کردن نام database به صورت متغیر

  1. #1

    Question مشکل ست کردن نام database به صورت متغیر

    عرض سلام خدمت استادهای عزیز.
    دوستان من در سی شارپ کانکشن استرینگ رو ست میکنم ولی هرکاری میکنم که اسم دیتا بیس رو به صورت متغیر بذارم نمیشه و جدول داخل دیتابیس رو نمیاره در صورتی که اگه همون اسم دیتابیس رو به صورت دستی در طول رشته قرار بدم درست کار میکنه.
    1.jpg

    2.jpg

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    تهران
    سن
    32
    پست
    12

    نقل قول: مشکل ست کردن نام دیتابیس به صورت متغیر

    کلا روش کاریتون اشتباهه ، کانکشن استرینگ رو باید در وب کانفیگ ست کنید .
    اما اینکه اینجا چرا جواب گو نیست کمی تامل برانگیزه ! چون روش کار درسته استاندارد نیست ولی نباید مشکلی هم داشته باشه ، حالا به جای استفاده از روش $ که استفاده کردید که من برای اولین بار دیدم واتفاقا خیلی هم سینتکس زیبایی داره ، از روش سنتی زیر استفاده کنید :

    datastring =""+ serverid+""+dbname

  3. #3

    نقل قول: مشکل ست کردن نام دیتابیس به صورت متغیر

    متدها رو static کنید ببینید مشکلتون حل میشه ؟

  4. #4

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    نقل قول نوشته شده توسط mrzirak مشاهده تاپیک
    عرض سلام خدمت استادهای عزیز.
    دوستان من در سی شارپ کانکشن استرینگ رو ست میکنم ولی هرکاری میکنم که اسم دیتا بیس رو به صورت متغیر بذارم نمیشه و جدول داخل دیتابیس رو نمیاره در صورتی که اگه همون اسم دیتابیس رو به صورت دستی در طول رشته قرار بدم درست کار میکنه.
    1.jpg

    2.jpg
    وقتی در زمان تعریف متغییر نام دیتابیس که به صورت استاتیک تعریف کردید مقدار دهی اولیه نکردید CLR مقدار خالی در رشته قرار میده! (قوانین تعریف متغییر در حافظه هیپ)
    که البته بهتره که حتما یک مقدار پیش فرض برای این متغییرها در سازنده کلاس تعریف ویا در همان قسمت تعریف متغییر ویا دریک بلاک استاتیک مقدار دهی اولیه انجام بدید!
    بنابراین در چه زمانی مقدار نام دیتابیس را ست میکنید؟
    بهتر هست که property را هم استاتیک تعریف کنید و قبل از فراخوانی رشته کانکشن استرینگ حتما مقدار نام دیتابیس را ست کنید.

  5. #5

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    نقل قول نوشته شده توسط farhad_shiri_ex مشاهده تاپیک
    وقتی در زمان تعریف متغییر نام دیتابیس که به صورت استاتیک تعریف کردید مقدار دهی اولیه نکردید CLR مقدار خالی در رشته قرار میده! (قوانین تعریف متغییر در حافظه هیپ)
    که البته بهتره که حتما یک مقدار پیش فرض برای این متغییرها در سازنده کلاس تعریف ویا در همان قسمت تعریف متغییر ویا دریک بلاک استاتیک مقدار دهی اولیه انجام بدید!
    بنابراین در چه زمانی مقدار نام دیتابیس را ست میکنید؟
    بهتر هست که property را هم استاتیک تعریف کنید و قبل از فراخوانی رشته کانکشن استرینگ حتما مقدار نام دیتابیس را ست کنید.
    ممنون از وقتتون
    همین کار ها رو هم کردم و دقیقا با لود شدن فرم متغیر ها مقدار دهی میشن و باید اصولا مشکلی نداشته باشه که در اصل کار نمیکنه.
    برای اینکه مطمئن بشم که هربار متغیر ها مقدار دهی میشن از حالت دیباگ و با یک مسیج باکس هم حتی امتحان کردم و متغیر ها به صورت صحیح مقدار دهی میشن ولی بازم به مشکل میخوره.
    مگه اگه پراپرتی رو استاتیک قرار بدم میتونه متغیر های دیگه رو فراخوانی یا مقداردهی کنه؟(خودش به صورت مستقیم مقدار دهی میشه که )

  6. #6

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    kala نام دیتابیس هست یا نام جدول ؟

  7. #7

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    kala نام دیتابیس هست یا نام جدول ؟
    نام جدولی که در دیتابیس هستش

  8. #8
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    نقل قول نوشته شده توسط mrzirak مشاهده تاپیک
    نام جدولی که در دیتابیس هستش
    خب الان چه ربطی به نام دیتابیس داره؟ !!
    اگه به دیتابیس متصل میشید پس مشکل از نام دیتابیس نیست. با ado.netکد میزنید؟ روی متد Open کانکشن خطایی ندارید؟
    نام جدولتون رو دوباره چک کنید. یا در صورت امکان کد اون قسمتی که خطا ظاهر میشه رو اینجا بنویسید ببینیم چی نوشتید.

  9. #9

    Exclamation نقل قول: مشکل ست کردن نام database به صورت متغیر

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    خب الان چه ربطی به نام دیتابیس داره؟ !!
    اگه به دیتابیس متصل میشید پس مشکل از نام دیتابیس نیست. با ado.netکد میزنید؟ روی متد Open کانکشن خطایی ندارید؟
    نام جدولتون رو دوباره چک کنید. یا در صورت امکان کد اون قسمتی که خطا ظاهر میشه رو اینجا بنویسید ببینیم چی نوشتید.
    ببین استاد عزیز منم دقیق منظورم همینه که چرا وقتی دستی نام دیتابیس رو وارد میکنم مشکلی نداره ولی وقتی به صورت متغیر وارد میکنم جدول رو نمیاره! بله با ado.net کد میزنم و روی open connection مشکل ندارم!

  10. #10

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    دوست عزیز مستحضر هستی که وقتی داری نام دیتابیس رو بصورت متغیر وارد میکنی باید دیتابیس با همون نام ساخته شده باشه؟ اون اروری که در پست اول عکسش رو گذاشتی یعنی اینکه همچین جدولی در دیتابیس وجود نداره، پس به دیتابیست وصل شده اما همچین جدولی رو پیدا نمیکنه، شما ببین دیتابیست کامل ساخته شده؟

  11. #11

    نقل قول: مشکل ست کردن نام database به صورت متغیر


    public class DataAccess
    {
    public static string AddressIP { get; set; }
    public static string DBName { get; set; }
    public SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(GetConnectionString());
    private static string GetConnectionString()
    {
    return $"Server={AddressIP};Integrated Security=SSPI;Initial Catalog={DBName}";
    }
    }

    استفاده :

    DataAccess.DBName = "Library";
    DataAccess.AddressIP = @".\SqlExpress";
    DataAccess da = new DataAccess();
    SqlConnection sqlConnection = new SqlConnection(da.builder.ConnectionString);

  12. #12

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    استادای عزیز مشکل رو پیدا کردم که چرا کار نمیکنه!
    وقتی DataString رو ست میکنم که serverIp و دیتابیس رو از روی متغیر بخونه فقط لحظه ی لود شدن برنامه متغیر های خالی رو میخونه بعد که متغیر ها رو برابر رشته قرار دادم و DataString رو فراخوانی کردم همون مقدار اولیه که متغیر ها خالی بودن رو برمیگردونه دیگه از روی دو متغیر serverIp و DatabaseName که دوباره مقدار داخلی آنها در حالت runtimeعوض شده فراخوانی نمیشه. ( لطفا این موضوع رو راهنمایی کنید )
    قابل ذکر است این متغیر ها همه در گلوبال می باشند.

  13. #13

    نقل قول: مشکل ست کردن نام database به صورت متغیر

    چند تا راه دارید
    DataString را یا بصورت پراپرتی درش بیارید یا به متد تبدیل کنید. یا یک رویداد که با تغییر ip و نام دیتابیس، مقدار DataString را اصلاح کند.

تاپیک های مشابه

  1. انتقال متغیر به database اکسپرس
    نوشته شده توسط mehdi0020 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: چهارشنبه 08 اردیبهشت 1395, 03:17 صبح
  2. سوال: تعریف متغیر sqlConnection به صورت سراسری درست است؟
    نوشته شده توسط forodo در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 09 مهر 1393, 19:08 عصر
  3. آپلود سایتی که بانکش به صورت database File هست
    نوشته شده توسط saber4166 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 21 تیر 1393, 14:32 عصر
  4. پاسخ: 3
    آخرین پست: چهارشنبه 18 خرداد 1390, 11:05 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •