الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استرجاع أسماء الأعمدة من table بداخل قاعدة بيانات

بدأه mr.beshoy في 5 ديسمبر 2010 · 10 رد · 589 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هنا أستعمل قاعدة البيانات access

و أريد استرجاع أسماء الأعمدة ، و لكن يعطينى خطأ و هو :

Server = null

الصراحة كنت قبلاً تعاملت مع ال Access و بحثت هنا و طريقة اتصالى بقاعدة البيانات صحيح ، لكن لماذا هذا الخطأ .

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JDBCTest {

    private Connection connection = null;
    private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
    private static final String DRIVER_URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};"
            + "Dbq=C:\\Documents and Settings\\a\\Desktop\\JDBCTest";
    private Statement statement = null;

    public JDBCTest() {
    try {
            Class.forName(DRIVER);
            connection = DriverManager.getConnection(DRIVER_URL);
            statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select*from InsertClient");
            ResultSetMetaData rsm = resultSet.getMetaData();
            for (int i = 0; i < rsm.getColumnCount(); i++) {
                String name = rsm.getColumnName(i);
                System.out.println(name);
            }
        } catch (Exception ex) {
            Logger.getLogger(JDBCTest.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public static void main(String[] args) {
        new JDBCTest();
    }
}

ال code مرفق و معه قاعدة البيانات .

شكراً

JDBCTest.rar

#2

المشكله عندك فالداتا بيز نفسها

مش عارف يتعامل معاها

انا جربتها على داتا بيز تانيه والكود اشتغل فى عمليه الاتصال

لكن بردوا عندك مشكله فالـ ResultSetMetaData حاول تشوفها

Software Developer
Mahmoudkelany.com


 

#3

مش عارف يتعامل معها !!! أزاى يعنى ؟ أكيد فى غلطة (أنا مش عارفها بصراحة )

انا لحد دلوقتى بيقولى ال server=null

-------------------------------------------------------------

ايه ال database التانية الى جربتها ؟!

أما مشكلة ال ResultSetMetaData لسة لما تتحل الأولى أبقى أشوف أيه دى!!!

#4

مقفلتش ال connection ليه يا بيشو ...

حاول تستخدم حاجه غير الأكسس الغريب ده ... إستخدم MySQL يا أخي..

#5
mr.beshoy كتب:

مش عارف يتعامل معها !!! أزاى يعنى ؟ أكيد فى غلطة (أنا مش عارفها بصراحة )

انا لحد دلوقتى بيقولى ال server=null

-------------------------------------------------------------

ايه ال database التانية الى جربتها ؟!

أما مشكلة ال ResultSetMetaData لسة لما تتحل الأولى أبقى أشوف أيه دى!!!

يعنى هو اصلا مش عارف يقرا الداتا بيز بتاعتك دى

انا جربت داتا بيز تانيه من نفس النوع وقرئها تمام

انا عرفت دلوقتى ليه

لان اسماء الاعمده بتاعتك بالعربى

لم غيرتها لانجليزى اشتغلت وبقت تمام :)

بالتوفيق :D

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 6 ديسمبر 2010 في 17:25

Software Developer
Mahmoudkelany.com


 

#6

عذراً على تأخرى :

----------------------------

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JDBCTest {

    private Connection connection = null;
    private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
    private static final String DRIVER_URL = "jdbc:odbc:Driver={Microsoft Access Driver "
            + "(*.mdb, *.accdb)}; Dbq=D:\\database\\AdslService.accdb";
    private Statement statement = null;

    public JDBCTest() {
        try {
            Class.forName(DRIVER);
            connection = DriverManager.getConnection(DRIVER_URL);
            System.out.println("connected");
            statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select*from InsertClient");
            ResultSetMetaData rsm = resultSet.getMetaData();
            for (int i = 1; i < rsm.getColumnCount(); i++) {
                String name = rsm.getColumnLabel(i);
                System.out.println(name);
            }

        } catch (Exception ex) {
            Logger.getLogger(JDBCTest.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public static void main(String[] args) {
        new JDBCTest();
    }
}

-----------------------------------------

قارن بينه و بين السابق و هتعرف مكنش ليه بيعمل connect ثم قارن بين الحلقة for هنا و سابقاً و سترى لماذا كان بيعطى exception .

أما المشكلة الى فعلاً غريبة : أن بيعرض أسماء الأعمدة علامات استفهام !!!!

مش عارف ليه مش عاوز يعرض العربى .

جرب على نفس قاعدة البيانات فى المشاركة الأولى .

شكراً. تعبتك معايا .

#7
mr.beshoy كتب:

عذراً على تأخرى :

----------------------------

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JDBCTest {

    private Connection connection = null;
    private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
    private static final String DRIVER_URL = "jdbc:odbc:Driver={Microsoft Access Driver "
            + "(*.mdb, *.accdb)}; Dbq=D:\\database\\AdslService.accdb";
    private Statement statement = null;

    public JDBCTest() {
        try {
            Class.forName(DRIVER);
            connection = DriverManager.getConnection(DRIVER_URL);
            System.out.println("connected");
            statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select*from InsertClient");
            ResultSetMetaData rsm = resultSet.getMetaData();
            for (int i = 1; i < rsm.getColumnCount(); i++) {
                String name = rsm.getColumnLabel(i);
                System.out.println(name);
            }

        } catch (Exception ex) {
            Logger.getLogger(JDBCTest.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public static void main(String[] args) {
        new JDBCTest();
    }
}

-----------------------------------------

قارن بينه و بين السابق و هتعرف مكنش ليه بيعمل connect ثم قارن بين الحلقة for هنا و سابقاً و سترى لماذا كان بيعطى exception .

أما المشكلة الى فعلاً غريبة : أن بيعرض أسماء الأعمدة علامات استفهام !!!!

مش عارف ليه مش عاوز يعرض العربى .

جرب على نفس قاعدة البيانات فى المشاركة الأولى .

شكراً. تعبتك معايا .

على فكرا الكود السابق شغال

وانا مغيرتش ولا كلمه فيه

لكن غيرت اسم الاعمده اشتغل ع طول

Software Developer
Mahmoudkelany.com


 

#8

انا حاولت فى موضوع الاعمده اللى بالعربى دى

ولكن مش نفع خالص

تقريبا فيه مشكله فالعربى

Software Developer
Mahmoudkelany.com


 

#9

على أى حال سنترك هذه المشكلة جانباً و نكمل و نشوف نتعامل معاها ازاى لما نحتاجها جدا ً بعد كده

شكراً

#10

مشكلة العربى اتحلت مع ال Mysql

عجيبة جدا ً .

واضح ان التعامل مع ال Access مش بيدعم ليك العربى .

شكراً ل mysql :lol:

#11

فى اول الكود اكتب

System.setProperty("file.encoding","windows-1256");


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…