كيفية الحصول على قائمة بجميع جدول مساحة رئيسية في كاساندرا

StackOverflow https://stackoverflow.com//questions/25061591

سؤال

أنا جديد على كاساندرا ، وأنا حاليا باستخدام كاساندراكشاربدريفر في تطبيق وهمية.أريد الحصول على قائمة بجميع الجداول التي وصفها المستخدم في مساحة مفتاح معينة.

        Cluster cluster = Cluster.Builder().AddContactPoints("IPAddress").Build();
        Session session = cluster.Connect("MyKeySpace");

في هذا الرمز أريد الحصول على قائمة بجميع جداول ميكي سبيس

هل كانت مفيدة؟

المحلول

سوف تعمل من خلال كيفية إعداد تلك القائمة من الجداول مع داتاستاكس كاساندرا ج # سائق:

الاتصال بالكتلة الخاصة بك:

Cluster cluster = Cluster.Builder().AddContactPoints("IPAddress").Build();
Session session = cluster.Connect();

سوف خلق List<String> واستخدام بيان أعدت (لأن هذا مجرد فكرة جيدة) لربط اسم كيسباس الخاص بك.بيان كل بلدي هو اختيار فقط columnfamily_name, ، الذي يجب أن يكون ما تحتاجه.

List<String> tableList = new List<String>();

String strCQL = "SELECT columnfamily_name "
    + "FROM system.schema_columnfamilies WHERE keyspace_name=? ";
PreparedStatement pStatement = _session.Prepare(strCQL);
BoundStatement boundStatement = new BoundStatement(pStatement);
boundStatement.Bind("MyKeySpace");

الآن سوف تنفيذ البيان ، تكرار من خلال النتائج ، وإضافة كل اسم الجدول إلى القائمة التي أنشأتها أعلاه.

RowSet results = session.Execute(boundStatement);

foreach (Row result in results.GetRows())
{
    tableName = result.GetValue<String>("columnfamily_name");
    tableList.Add(tableName);
}

الآن يجب أن يكون لديك قائمة بالجداول التي يمكنك إضافتها إلى واجهة المستخدم الخاصة بك.

نصائح أخرى

يمكنك تشغيل:

giveacodicetagpre.

يعمل ضد Kyespace "النظام".

  1. احصل على أسماء الأعمدة :

    giveacodicetagpre
  2. احصل على أسماء الأسرة العمود ، أي أسماء الجدول:

    giveacodicetagpre

هناك خيار استخدام البيانات الوصفية الكتلة وكذلك للحصول على قائمة سلسلة من المفاتيح مثل

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top