# فناوری جاوا > برنامه‌نویسی جاوا > Java SE : نگارش استاندارد جاوا >  نحوه ارتباط  پایگاه داده با جاوا

## parnian~parnian

سلام بچه ها 
حقیقتش یکم موندم که این تاپیک رو توی تالار   SQL sqerverبذارم یا اینجا اگه جاش اشتباهه شرمنده آخه بین هر دوتاش مشترکه 
من یه پایگاه داده درست کردم (توی SQL SERVER 2008) و query  هاشم همرو  نوشتم و اجرا کردم ، از اون طرف با جاوا برنامه نوشتم و همه ی query  هارو  صدا زدم و برنامه هاشو نوشتم و تنظیمات داخل windows  هم از توی control  panel  انجام دادم ولی هنوز connect نشده ............ فکر کنم یه driver   می خواد تا اجرا بشه ولی من هر کاری میکنم نمیتونم متصل شم به پایگاه داده  ......اگه کسی اطلاعاتی در این باره داره ممنون می شم اگه کمکم کنه.
همتون موفق باشین.

----------


## spiderman200700

درود بر شما.
کتابخانه ی SQLJDBC رو به لایبراری های پروژت اضافه کن.
اگه  بازم ، نشد کد یا اروری رو که موقع اجرا بهت میده رو اینجا بذار تا مشکل رو حل کنیم.

----------


## parnian~parnian

> درود بر شما.
> کتابخانه ی SQLJDBC رو به لایبراری های پروژت اضافه کن.
> اگه  بازم ، نشد کد یا اروری رو که موقع اجرا بهت میده رو اینجا بذار تا مشکل رو حل کنیم.


 1234.png
 وقتی که کلید رو در برنامه جاوا فشار میدم این ارور رو نمایش میده .

میشه لطف کنین بگین این کتابخونه رو از چه سایتی میتونم تهیه کنم ؟

----------


## spiderman200700

بله.
دقیقا مشکل به خاطر نبودن فایل SQLJDBC هست.

اینم لینک دانلود مستقیم SQLJDBC از مایکروسافت:   
DOWNLOAD SQLJDBC 3

----------


## parnian~parnian

واقعا ازتون ممنونم .
من دانلود کردم و فایل exe رو unzip کردم و بعدش داخل library  پروژم add jar/folder رو زدم و فایل رو اونجا add کردم ولی بازم همین error رو میده . 
تازه من تنظیمات control panel  رو انجام دادم 
adminstrative tool> data source--odbc> system dsn> add
همون اسم رو هم که اونجا add  کردم داخل برنامه نوشتم ولی بازم......................

----------


## spiderman200700

دیگه نباید مشکلی وجود داشته باشه.
مگر اینکه کدهایی که برای کانکت شدن به SQL SERVER  نوشتی،اشتباه باشه.
لطفا قسمتی از کدهات رو که باهاش به دیتابیس کانکت میشی رو هم اینجا بذار تا یه نگاهی بهش بندازیم.

----------


## parnian~parnian

> دیگه نباید مشکلی وجود داشته باشه.
> مگر اینکه کدهایی که برای کانکت شدن به SQL SERVER  نوشتی،اشتباه باشه.
> لطفا قسمتی از کدهات رو که باهاش به دیتابیس کانکت میشی رو هم اینجا بذار تا یه نگاهی بهش بندازیم.


این کدی هست که داخل buttom می ذارم:

        clsGeneralFunctions c = new clsGeneralFunctions();
        c.sqlExecStatement((new StringBuilder()).append(" execute [2.insert_station] @station_number=").append(snu.getText()).append(",  @station_name=").append(sc.getText()).append(",@st  ation_price=").append(sna.getText()).toString());


این هم کلاس اصلی هست :

import java.sql.*;
import javax.swing.*;

public class clsGeneralFunctions
{

    public clsGeneralFunctions()
    {
    }

    public void ClearForm(JComponent C)
    {
        int i = C.getComponentCount();
        for(int j = 0; j < i; j++)
            if(C.getComponent(j).getClass().getName() == "javax.swing.JTextField" || C.getComponent(j).getClass().getName() == "javax.swing.JFormattedTextField" || C.getComponent(j).getClass().getName() == "javax.swing.JPasswordField")
                ((JTextField)C.getComponent(j)).setText("");

    }

    public void sqlExecStatement(String SQL)
    {
        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLSer  verDriver");
            String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=Hotel Project2;user=;password=;";
            Connection con = DriverManager.getConnection(connectionUrl);
         //   Connection con = DriverManager.getConnection("jdbc:odbc:myodbc1",""  ,"");
            Statement stmt = null;
            stmt = con.createStatement();
            int rowsEffected = stmt.executeUpdate(SQL);
            if(rowsEffected == 0)
                JOptionPane.showMessageDialog(null, "   Error in execute!");
            else
                JOptionPane.showMessageDialog(null, "Congratulation!Successfully executing!");
        }
        catch(SQLException e)
        {
            JOptionPane.showMessageDialog(null, "Please enter the information properly.");
        }
        catch(ClassNotFoundException cE)
        {
            JOptionPane.showMessageDialog(null, (new StringBuilder()).append("Class Not Found Exception: ").append(cE.toString()).toString());
        }
    }

    public ResultSet sqlExecQuery(String SQL)
    {
        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLSer  verDriver");
            String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=;user=sa;password=;";
            Connection con = DriverManager.getConnection(connectionUrl);
            Statement stmt = null;
            ResultSet rs = null;
            stmt = con.createStatement();
            rs = stmt.executeQuery(SQL);
            return rs;
        }
        catch(SQLException e)
        {
            JOptionPane.showMessageDialog(null, "Please enter the information properly.");
        }
        catch(ClassNotFoundException cE)
        {
            JOptionPane.showMessageDialog(null, (new StringBuilder()).append("Class Not Found Exception: ").append(cE.toString()).toString());
        }
        return null;
    }
}

----------


## spiderman200700

با این شرایط احتمالا باید ایراد از data source باشه.
حالا کدهای زیر رو جایگزین کدهای مشابهش ،توی  متد sqlExecQuery کن و برنامه رو تست کن.

String connectionUrl = "jdbc:sqlserver://localhost:1433; databaseName=databasename;";
Connection con = DriverManager.getConnection(connectionUrl, "username", "password");

اگه درست شد اطلاع بده.

----------


## parnian~parnian

خیلی ممنون از لطفتون .......................... ولی باز هم جواب نداد ............. نمیدونم چشه ؟؟؟؟؟؟؟؟؟؟؟  :گریه: 

query هایی که توی database  نوشتم همرو execute  کردم همشون درست هستن و جواب می دن ؟؟؟؟؟؟؟؟ فقط یه چیزی ........... ببینید وقتی من SQL server  رو باز می کنم و پنجره  connect to server میاد من با windows authentication  به سرور  connect  میشم یعنی user name  و  password  غیر فعاله به خاطر همین جای اونارو توی کد ها خالی میزارم (همون کد هایی که شما بالا گفتین ، هم قبلا توی کد های مشابه خودم)

من که دیگه کلافه شدم هر کاری می کنم نمیشه  :خیلی عصبانی:

----------


## spiderman200700

شما که توی کد های خودتون جای username رو خالی نذاشتید.توی این خط usename رو  وارد کردید:
 String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=;user=sa;password=;";

همون طور که خودتون گفتید،موقه اجرا استسنای پیدا نشدن کلاس SQLServerDriver رو میده.این یعنی اصلا به مرحله ی وصل شدن به دیتا بیس نمیرسه.که بخواد از نحوه ی وصل شدن یا username  و  password ایراد بگیره.
ولی در کل برای وصل شدن به SQLServer  از طریق برنامه های کاربردی، باید از SQL Server Authentication استفاده کنید.یعنی باید یه Login جدید با این مشخصه و username  و password جدا بسازید.

این کدی هست که من همیشه باهاش به SQLServer وصل میشم.شاید به دردت بخوره.

 Class.forName("com.microsoft.sqlserver.jdbc.SQLSer  verDriver");
 connectionUrl = "jdbc:sqlserver://localhost:1433; databaseName=mydatabasename;";
connection = DriverManager.getConnection(connectionUrl, "user", "pass");

فقط یادت باشه که جای user و pass ، باید user و pass مربوط  به Login داخل  SQLServer رو بنویسی.
و تمام تنظیمات مربوط به ODBC رو از Dataُ Source ویندوز ، حذف کنی.یعنی فقط از SQLJDBC برای اتصال استفاده کن.

امیدوارم ایندفعه درست بشه.

----------


## parnian~parnian

ببینین حقیقتش اون یه اشتباه  بود من داشتم تست می کردم ایراد از اونه یا نه  ، ولی بعدا حذف کردم ....  

یعنی شما میگین همون کتابخونه ای که add کردم به پروژم کار اتصال رو انجام می ده و نیاز به تنظیمات ویندوز و ساخت odbc نداره؟

و این که من چجوری میتونم یه user  و  pass  تعریف کنم واسه اتصال به SQL server  ؟ خیلی تلاش کردم خودم ولی نفهمیدم چجوری!!!! اگه لطف کنین بگین چجوری ممنون می شم

ولی آخه به قول شما اصلا به این جاها نمیرسه  و کلاس رو پیدا نمی کنه !!!!

منم دقیقا کد شما رو می نویسم . :متعجب:

----------


## spiderman200700

> یعنی شما میگین همون کتابخونه ای که add کردم به پروژم کار اتصال رو انجام می ده و نیاز به تنظیمات ویندوز و ساخت odbc نداره؟


 بله.همون SQLJDBC برای اتصال کافیه.و نیاز به تنظیمات ODBC نیست.
مطمئن شو که فایلی رو که دانلود کردی(منظورم SQLJDBC) ، درست دانلود شده.برای این کار فایل JAR رو با برنامه WinRar باز کن و به مسیر com.microsoft.sqlserver.jdbc برو و مطمئن شو که فایل SQLServerDriver اونجا وجود داره.(خیلی مهم)

اینم نحوه ساخت Login جدید:
http://msdn.microsoft.com/en-us/library/aa337562.aspx
فقط یادت باشه Login رو با استفاده از  SQL Server Authentication بسازی.

شما این کار ها رو انجام بده.تنظیمات ODBC رو هم پاک بکن.به یاری خدا درست میشه.

----------


## parnian~parnian

اصلا com.microsoft.sqlserver.jdbc یه همین چیزی توی کل فایل پیدا نکردم .


Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\enu

داخل اونم که  auth  و  help  و xa  و   سه تا  text doucument  و 2 تا  jar فایل داره ........... ولی اونی که شما می گین نداره. 

بعدش login  ای که اون جا می سازم وقتی می خوام با اون login  شم error میده و connect  نمیشه. به نظرتون دلیلش چیه؟؟

(واقعا شرمندم که این قدر سوال می پرسم ازتون  :خجالت: )

----------


## spiderman200700

خواهش میکنم.
همونطور که قبلا هم گفتم، باید همون فایهای jar رو ، با برنامه ی WinRar باز کنی.وقتی که باز شد، سه تا پوشه میبینی: com ، META-INF و microsoft  که شما باید پوشه ی  com رو باز کنی.
حال داخل پوشه ی com یه پوشه هست به نام microsoft داخل اونم پوشه ی  sqlserver ,و داخل اون پوشه ی  jdbc وجود داره. حالا ببین داخل پوشه ی jdbc ، فایل SQLServerDriver وجود داره یا نه.
اگه وجود نداره،فایل مشکل داره و باید اونو دوباره دانلود کنی.

عذر میخوام که از این ساده تر نمیتونم توضیح بدم.
قطعا مشکل شما از فایل SQLJDBC هست. یا اونو اشتباه به پروژه اضافه کردید، یا فایل مشکل داره یا شایدم مشکلات دیگه.ولی حتما مشکل از SQLJDBC هست.

در مورد Login کردن هم،اگه password و user رو درست وارد کنید نباید مشکلی پیش بیاد.ولی در هر صورت اگه از داخل SQLSERVER Management نمیتونید باهاش  Login بشید،مسئله ای نیست،چون از طریق برنامه راحت میشه با Login کانکت شد.

 موفق باشی.

----------


## parnian~parnian

خیلی ممنون ................ متوجه شدم این قدر درگیر بودم اصلا حواسم نبود و متوجه منظورتون نشده بودم شرمنده ......... چک کردم داخلش 2 تا فایل SQLserverdriver بود .

ولی حقیقتش خودم هم به add  کردن خودم مطمئن نیستم... :لبخند:   .................... من اول فایل رو که exe بود اجرا کردم بعد پنجره ای باز می شد که یکی از buttom هاش unzip بود
بعد از این که فایل unzip  شد داخل netbeans  روی پروژه خودم روی library راست کلیک کردم add jar/folderرو زدم  و فایلی که unzip کرده بودم رو open  کردم .بعد مسیرش اومد توی لیست library ها
حالا نمیدوتم درسته یا نه؟؟؟؟؟؟

----------


## spiderman200700

نباید پوشه unzip  شده رو  add کنی.
باید یکی از فایلهای jar ی که توی پوشه ی unzip شده وجود داره رو  add کنی.
یعنی یا فایل sqljdbc.jar یا sqljdbc4.jar رو باید add کنی.

----------


## parnian~parnian

> نباید پوشه unzip  شده رو  add کنی.
> باید یکی از فایلهای jar ی که توی پوشه ی unzip شده وجود داره رو  add کنی.
> یعنی یا فایل sqljdbc.jar یا sqljdbc4.jar رو باید add کنی.


وای واقعا ازتون ممنونم . :لبخند: ................  دیگه اون error  رو نمیده ولی یه error  دیگه میده ............. شرمنده  ... می خوام بدونم یعنی connect  شده یا نه ................. Please enter  the information properly  ..........کد های منم که دیدید .............  واقعا شرمندم .

----------


## spiderman200700

لطفا این کد رو:
 catch(SQLException e)
        {
            JOptionPane.showMessageDialog(null, "Please enter the information properly.");
        }
به این کد:

 catch(SQLException e)
        {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "Please enter the information properly.");
        }
تغییر بدید و Errorی رو کهموقع اجرا، توی خروجی چاپ میکنه رو اینجا بذارید،تا مشکل رو حل کنیم.

----------


## parnian~parnian

همین کارو کردم و کد رو تغییر دادم

ولی بازم همون error رو میده :

Please enter the information properly

در حالی که من اطلاعاتی که میزنم رو وقتی داخل sql server  اجرا می کنم (execute) جواب درست میده ....... خودم گفتم شاید وقتی اطلاعات رو با این خط :


        c.sqlExecStatement((new StringBuilder()).append(" execute [3.delete_station] @station_number=").append(snu.getText()).append(",  @station_name=").append(sc.getText()).append(",@st  ation_price=").append(sna.getText()).toString());



از کاربر میگیرم باید تبدیل کنم به نوعی که باید باشه مثلا:
append(snu.getText().valueOf(WIDTH)

ولی بازم نشد !!!!!!!!!!
نظر شما چیه؟؟؟؟؟؟؟؟؟؟؟؟؟

----------


## spiderman200700

مهم نیست که بازم همون Error رو میده.
توی NetBeans، پایین پنجره ای که توش کد مینویسید،یه کادر هست به اسم Output که Error ها اونجا چاپ میشه.
وقتی برنامه رو اجرا میکنید،کل Errorی که داخل Output چاپ میشه رو اینجا بذارید ببینم مشکل چیه.

----------


## parnian~parnian

شرمنده حواسم نشد منظورتون output هستش این error  هارو می ده:
com.microsoft.sqlserver.jdbc.SQLServerException: The connection string contains a badly formed name or value.
        at com.microsoft.sqlserver.jdbc.SQLServerException.ma  keFromDriverError(SQLServerException.java:171)
        at com.microsoft.sqlserver.jdbc.Util.parseUrl(Util.ja  va:266)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.parse  AndMergeProperties(SQLServerDriver.java:856)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.conne  ct(SQLServerDriver.java:838)
        at java.sql.DriverManager.getConnection(DriverManager  .java:582)
        at java.sql.DriverManager.getConnection(DriverManager  .java:207)
        at bus_station_system.clsGeneralFunctions.sqlExecStat  ement(clsGeneralFunctions.java:42)
        at bus_station_system.student_rep_num.jButton1ActionP  erformed(student_rep_num.java:102)
        at bus_station_system.student_rep_num.access$000(stud  ent_rep_num.java:18)
        at bus_station_system.student_rep_num$1.actionPerform  ed(student_rep_num.java:55)
        at javax.swing.AbstractButton.fireActionPerformed(Abs  tractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed  (AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed  (DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultB  uttonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseRe  leased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.jav  a:6134)
        at javax.swing.JComponent.processMouseEvent(JComponen  t.java:3265)
        at java.awt.Component.processEvent(Component.java:589  9)
        at java.awt.Container.processEvent(Container.java:202  3)
        at java.awt.Component.dispatchEventImpl(Component.jav  a:4501)
        at java.awt.Container.dispatchEventImpl(Container.jav  a:2081)
        at java.awt.Component.dispatchEvent(Component.java:43  31)
        at java.awt.LightweightDispatcher.retargetMouseEvent(  Container.java:4301)
        at java.awt.LightweightDispatcher.processMouseEvent(C  ontainer.java:3965)
        at java.awt.LightweightDispatcher.dispatchEvent(Conta  iner.java:3895)
        at java.awt.Container.dispatchEventImpl(Container.jav  a:2067)
        at java.awt.Window.dispatchEventImpl(Window.java:2458  )
        at java.awt.Component.dispatchEvent(Component.java:43  31)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:  599)
        at java.awt.EventDispatchThread.pumpOneEventForFilter  s(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(E  ventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarch  y(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispa  tchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispa  tchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThre  ad.java:122)

----------


## spiderman200700

خب این نشون میده که دیگه با SQLJDBC مشکلی نداره.
این مشکل به connectionUrl مربوط میشه.
اگه connectionUrl رو با فرمتی که من توی پست 10 همین تایپک، واستون نوشتم ست کنید،به احتما خیلی زیاد ، مشکل باید حل بشه.

----------


## parnian~parnian

ممنون از شما ........ 
میدونین مشکل من از اینه که وقتی login جدید همون طوری که شما گفتین درست می کنم ولی connect  نمیشه که هیچ ...........وقتی هم که درست میکنم و دوباره پنجره همون login رو باز میکنم جای pass شده 15 رقمی ...........یعنی احساس میکنم که عوض میشه خود به خود واسه همین connect  نمیشه توی برنامه هم این error رو میده:

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'n55'.
        at com.microsoft.sqlserver.jdbc.SQLServerException.ma  keFromDatabaseError(SQLServerException.java:197)
        at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF  (tdsparser.java:246)
        at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdspa  rser.java:83)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.s  endLogon(SQLServerConnection.java:2529)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.l  ogon(SQLServerConnection.java:1905)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.a  ccess$000(SQLServerConnection.java:41)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection$L  ogonCommand.doExecute(SQLServerConnection.java:189  3)
        at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IO  Buffer.java:4575)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.e  xecuteCommand(SQLServerConnection.java:1400)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.c  onnectHelper(SQLServerConnection.java:1045)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.l  ogin(SQLServerConnection.java:817)
        at com.microsoft.sqlserver.jdbc.SQLServerConnection.c  onnect(SQLServerConnection.java:700)
        at com.microsoft.sqlserver.jdbc.SQLServerDriver.conne  ct(SQLServerDriver.java:842)
        at java.sql.DriverManager.getConnection(DriverManager  .java:582)
        at java.sql.DriverManager.getConnection(DriverManager  .java:185)
        at bus_station_system.clsGeneralFunctions.sqlExecStat  ement(clsGeneralFunctions.java:44)
        at bus_station_system.sharje_seudent_money.savesharje  ActionPerformed(sharje_seudent_money.java:140)
        at bus_station_system.sharje_seudent_money.access$100  (sharje_seudent_money.java:18)
        at bus_station_system.sharje_seudent_money$2.actionPe  rformed(sharje_seudent_money.java:70)
        at javax.swing.AbstractButton.fireActionPerformed(Abs  tractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed  (AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed  (DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultB  uttonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseRe  leased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.jav  a:6134)
        at javax.swing.JComponent.processMouseEvent(JComponen  t.java:3265)
        at java.awt.Component.processEvent(Component.java:589  9)
        at java.awt.Container.processEvent(Container.java:202  3)
        at java.awt.Component.dispatchEventImpl(Component.jav  a:4501)
        at java.awt.Container.dispatchEventImpl(Container.jav  a:2081)
        at java.awt.Component.dispatchEvent(Component.java:43  31)
        at java.awt.LightweightDispatcher.retargetMouseEvent(  Container.java:4301)
        at java.awt.LightweightDispatcher.processMouseEvent(C  ontainer.java:3965)
        at java.awt.LightweightDispatcher.dispatchEvent(Conta  iner.java:3895)
        at java.awt.Container.dispatchEventImpl(Container.jav  a:2067)
        at java.awt.Window.dispatchEventImpl(Window.java:2458  )
        at java.awt.Component.dispatchEvent(Component.java:43  31)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:  599)
        at java.awt.EventDispatchThread.pumpOneEventForFilter  s(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(E  ventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarch  y(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispa  tchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispa  tchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThre  ad.java:122)

----------


## spiderman200700

وقتی  داری Login جدید میسازی، از سمت چپ پنجره توی قسمت User Mapping حتما دیتابیس هایی رو که لازمه بهشون وصل بشی رو انتخاب کن،و دقت کن که در قسمت Status ، در قسمت Login و Permission to connect to database engine، حتما گزینه های اول باید انتخاب شده باشه.
در قسمت General هم که حتما باید SQL Server authentication انتخاب بشه.
و در مورد اینکه وقتی داری با SQL Server کانکت میشی پسورد 15 رقمی میشه ، اصلا موضوع مهمی نیست.شما با همون پسورد 15 رقمی که اونجا هست دکمه ی  Connect رو بزن.
فقط باید دقت کنی که Server Name نباید sa باشه.باید همون گزینه ای باشه که موقع نصب SQL Server  واسش تعریف کردی،که معمولا موقه نصب، برابر با  ComputerName انتخاب میشه.

----------


## parnian~parnian

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

----------


## spiderman200700

حقیقتا دیگه نمیدونم مشکل شما از کجاست.
من که با همینا دارم راحت و بدون هیچ مشکلی به دیتا بیسم وصل میشم.
روی مشکل Login کار کن،هر مشکلی هست از اونجاس.

----------


## hosein.zare

سلام . از درایور JTds استفاده کنید . راحتتر و سریعتره :

Connetion String

"jdbc:jtds:sqlserver://<IP>:<PORT>/<DATA BASE NAME>;tds=8.0";

tds=8.0 یعنی پایگاه داده SQL Server هست tds=5.0 یعنی پایگاه داده sybase 

سایت اصلی:
http://jtds.sourceforge.net/
دانلود کتابخانه :
http://sourceforge.net/projects/jtds/files/

        //new Driver() AUTOMATICALLY REGISER ITSELF IN DRIVER MANAGER
        net.sourceforge.jtds.jdbc.Driver.Driver driver = new net.sourceforge.jtds.jdbc.Driver.Driver();
        String conncetionUrl = "jdbc:jtds:sqlserver://<IP>:<PORT>/<DATA BASE NAME>;tds=8.0;lastupdatecount=true";
        Connection conn = DriverManager.getConnection(conncetionUrl, connProp.getStrUser(), connProp.getStrPass());

----------


## parnian~parnian

خیلی ممنون ازتون  .......... من تست کردم ولی نیاز به کلاس connProb داره در واقع نمیشناسه این کلاس رو . باید تعریف بشه

----------


## hosein.zare

اشتباه نشه من توی برنامه خودم اونا را تعریف کرده بودم .  شما در واقع User Name  و Password  خودتون را اونجا بنویسید .مثلا 

Connection conn = DriverManager.getConnection(conncetionUrl, "sa", "123");

----------


## spiderman200700

مشکل ایشون اصلا از درایور نیست.
مشکل از Login در SQL Server هست.
این یعنی با هر درایوری که بخواد وصل بشه،بازم همچین مشکلی وجود داره.

----------


## parnian~parnian

ایشون درست می گن مشکل اصلی من با login هست .......................... در واقع  باید پیش فرض sql server رو تغییر بدم که متاسفانه نمیدونم چطوریه ؟؟؟؟؟؟؟؟!!!!!!!!!!! :خیلی عصبانی:

----------


## firethumbs

دوستان سلام 
من هم مشکلی مشابه دارم
تنها مشکلم اینه که در sql server نحوه ورودم windows authentication است و با اینکه integratedSecurity=true قرار می دهم خطای زیر را بهم میده 
WARNING: Failed to load the sqljdbc_auth.dll
Driver Erroe: com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.
Java Result: 1
1-چطور باید درایور را کانفیگ کرد
2- فایل dll را باید کجا بگذاریم تا لود بشه
خیلی جستجو کردم ولی هنوز حل نشده لطفا راهنمائی کنید
در ضمن از درایور jtds هم استفاده کردم ولی اونهم جواب نداده
اگه یه مثال یه نفر لطف کنه ممنون می شم(از هر دو روش)
با تشکر

----------


## spiderman200700

سلام.
دوست عزیز به فایل dll نیازی نیست.خطای مربوط به dll هم مهم نیست.
در مورد خطای دوم هم اگه کارهایی که در تایپک زیر گفتم رو درست انجام بدی، راحت میتونی به SQLServer وصل بشی.
https://barnamenevis.org/showthread.p...SqlServer-2008

هر چند توی همین تایپک هم قبلا نحوه ی وصل شدن گفته شده.

----------


## firethumbs

> سلام.
> دوست عزیز به فایل dll نیازی نیست.خطای مربوط به dll هم مهم نیست.
> در مورد خطای دوم هم اگه کارهایی که در تایپک زیر گفتم رو درست انجام بدی، راحت میتونی به SQLServer وصل بشی.
> https://barnamenevis.org/showthread.p...SqlServer-2008
> 
> هر چند توی همین تایپک هم قبلا نحوه ی وصل شدن گفته شده.



سلام
از توجهتون خیلی ممنونم
اتفاقا این تاپیک هم با دقت خوندم ولی در مورد اتصال در حالت windows authentication چیزی پیدا نکردم. فقط روشها را در صورت داشتن یوزرنیم پسورد بیان کرده است. اما من به دلایلی نمی تونم پسورد ست کنم
با تشکر

----------


## spiderman200700

فکر نمیکنم راهی وجود داشته باشه که بدون استفاده از Login بتونی به SQLServer وصل بشی. مگر اینکه از ODBC استفاده کنی.

توی این آدرس روش استفاده از ODBC  توضیح داده شده.البته برای Access توضیح داده ، ولی برای SQLServer هم شبیه همینه و اونقدری فرق نداره.
http://java.tadbirpoya.ir/articles/D...20msaccess.htm

----------


## sniper_I

دوستان سلام...
من یه مشکل کوچک برای ارتباط با بانک sql دارم. اول اینکه بانکم روی یه کامپیوتر دیگه است با ip:177.177.7.7  براش user و pass هم تعریف کردم فقط موقع اتصال این پیغام رو میده:com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host 177.177.7.7, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties, check that an instance of SQL Server is running on the host and 
accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".
البته نمی دونم سوالم رو جای درستی پرسیدم یا نه ولی ممنون میشم جواب بدین
اینم قطعه کد اتصالمه :
private String sqlClassForNameString="com.microsoft.sqlserver.jdb  c.SQLServerDriver";
       String con1="jdbc:sqlserver://177.177.7.7:1433;databaseName=Book_reservation;";
    public SqlConnector(String extUrl) throws SQLException, ClassNotFoundException {
      url=extUrl;
      Class.forName(sqlClassForNameString);
      String url = sqlConnectionURLString;
      url +=this.url;
      url=con1;
      myUrl=url;
      con = DriverManager.getConnection(myUrl, "newsqluser", "123456");
      statement = con.createStatement();
    }

----------


## spiderman200700

مطمئنی که sqlserver توی اون هاست در حال اجراس؟

----------


## sniper_I

> مطمئنی که sqlserver توی اون هاست در حال اجراس؟


 مثبت
حتی فایروالم رو هم off کردم ولی باز این خطا رو میده. احتمالا مربوط به پورت یا TCP باشه. چحوری میتونم مشخص کنم که TCP فعال باشه. یعنی منظورم اینه که از طریق کد باید اینکارو بکنم یا خود ویندوزم تنظیمات خاصی داره.؟

----------


## agusta.ada

میتونه مشکل از تنظیمات و فعال نبودن پروتکل tcp/ip بر روی هاست باشد.
به مسیر زیر بروید و مطمئن شوید که tcp/ip is enable و پورت هم تنظیمه.
sql server configuration\sql server network configuration\protocols for mssqlserver\

----------

