SqlConnectionStringBuilder ব্যবহার করে কীভাবে সংযোগ স্ট্রিং থেকে ডেটাবেস নাম পাবেন


92

আমি কখনও স্ট্রিং ম্যানিপুলেশন ব্যবহার করে সংযোগের স্ট্রিং বিভক্ত করতে এবং সার্ভার, ডাটাবেস, ইউআইডি এবং পাসওয়ার্ড পেতে চাই না।

আমি নীচের লিঙ্কটি পড়েছি এবং স্বীকৃত উত্তরটি পড়েছি, আমি খুঁজে পেয়েছি যে সংযোগের স্ট্রিং থেকে ইউজারিড এবং পাসওয়ার্ড পাওয়ার সবচেয়ে ভাল উপায়, তবে ডাটাবেসের নাম সম্পর্কে কী?

সংযোগ স্ট্রিং থেকে ব্যবহারকারীর নাম এবং পাসওয়ার্ড পাওয়ার সঠিক উপায়?

SqlConnectionStringBuilder ব্যবহার করে কীভাবে সংযোগ স্ট্রিং থেকে ডেটাবেস নাম পাবেন। (ডেটা সোর্স কি সার্ভারের নাম?)

উত্তর:


53

ইনিশিয়াল ক্যাটালগ সম্পত্তি জন্য এমএসডিএন ডকুমেন্টেশন দেখুন :

সংযোগের সাথে সম্পর্কিত ডেটাবেজের নাম পান বা সেট করুন ...

এই সম্পত্তি সংযোগ স্ট্রিংয়ের মধ্যে "প্রাথমিক ক্যাটালগ" এবং "ডাটাবেস" কীগুলির সাথে সম্পর্কিত ...


152

আপনি সরবরাহকারীর সাথে সম্পর্কিত কানেকশন স্ট্রিংবিল্ডার ক্লাসটি (উপযুক্ত নেমস্পেসের মধ্যে) ব্যবহার করতে পারেন, বা System.Data.Common.DbConnectionStringBuilderআপনার প্রয়োজন হলে সংযোগের স্ট্রিং অবজেক্টটি বিমূর্ত করতে পারেন। আপনি যে তথ্যটি সন্ধান করছেন তা নির্ধারণ করতে আপনার সরবরাহকারীর নির্দিষ্ট কীওয়ার্ডগুলি জানতে হবে, তবে এসকিউএল সার্ভারের উদাহরণের জন্য আপনি এই দুটি জিনিসই করতে পারেন:

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString);

string server = builder.DataSource;
string database = builder.InitialCatalog;

বা

System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();

builder.ConnectionString = connectionString;

string server = builder["Data Source"] as string;
string database = builder["Initial Catalog"] as string;

4
আমার জন্য, শেষ লাইনটি হওয়া দরকার: string database = builder["Initial Catalog"] as string;- "ডেটাবেস" ছিল একটি অবৈধ কীওয়ার্ড।
সান্দ্রা

@ সান্ড্রা হ্যাঁ আপনি সঠিক। নির্মাতা ["ডাটাবেস"] স্ট্রিং হিসাবে কাজ করবে যদি আমরা SQLConnectionStringBuilder ব্যবহার করি।
রোমিল কুমার জৈন

32

একটি খুব সহজ বিকল্প হ'ল সংযোগ বস্তু থেকে তথ্য প্রাপ্ত করা। উদাহরণ স্বরূপ:

IDbConnection connection = new SqlConnection(connectionString);
var dbName = connection.Database;

একইভাবে আপনি সংযোগ বস্তু থেকে সার্ভারের নামও পেতে পারেন।

DbConnection connection = new SqlConnection(connectionString);
var server = connection.DataSource;

এই আমি খুঁজছিলাম ছিল। ধন্যবাদ
ইভান সান্তিয়াগো

এটি নির্দিষ্ট হয়ে যায় SqlConnection। এই ক্রস আরডিবিএমএস তৈরি করার মতো কোনও উপায় আছে কি?
অমিত জোশী

@ আমিত জোশি কি তারা সবাই প্রয়োগ করতে চান IDbConnection?
নওফাল

@ নওফাল: আমি সম্মত তবে এটি এখনও ব্যবহারযোগ্য করে তোলে না। আমি এই প্রশ্নের বিবরণে এটি ব্যাখ্যা করেছি। stackoverflow.com/q/47727524/5779732
অমিত যোশি

এটি ডেটাবেস এবং ডেটাসোর্স পেতে পারে তবে ইউজারআইডি এবং পাসওয়ার্ডটি এভাবে পেতে পারেনি।
2020

12
string connectString = "Data Source=(local);" + "Integrated Security=true";

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);

Console.WriteLine("builder.InitialCatalog = " + builder.InitialCatalog);

7

এটি আপনাকে এক্স্যাক্ট দেয়;

System.Data.SqlClient.SqlConnectionStringBuilder connBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder();

connBuilder.ConnectionString = connectionString;

string server = connBuilder.DataSource;           //-> this gives you the Server name.
string database = connBuilder.InitialCatalog;     //-> this gives you the Db name.


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.