PDA

View Full Version : سوال: مشکل در متد insert در نتبینز



arezo1174
شنبه 23 اردیبهشت 1391, 10:50 صبح
سلام.
اساتید محترم میشه راجع به کد من یه نظری بدید؟؟
مشکل اینه که توی متد insert، تکس باکس من یعنی همون jtextfield1 رو شناسایی نمیکنه خودم میدونم که خیلی ساده ست ولی خوب من نمیدونم چه کنم :افسرده:
ممنون میشم راهنماییم کنید.
با تشکر فراوان.


import java.sql.*;

public class ConnectionSql {
private static Connection cn;
private static Statement st;

ResultSet rs;
public ConnectionSql() {
Connect();
}

public static void Connect()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection("jdbc:odbc:movi_maneger","","");

}
catch (Exception ex)
{
}
}
// NewJFrame jframe initComponents()
public static void insert() throws Exception{
Connect();
st = cn.createStatement();
String sql="Insert into T_Film (name,family) values('%s','%s')";
sql=String.format(sql,jTextfield1.gettext,jTextfie ld2.gettext);
rs = st.execute(sql);
}
}

arezo1174
شنبه 23 اردیبهشت 1391, 10:59 صبح
فک میکنم توی کدم یه مشکلی ایجاد شده دوباره میزارم:متعجب:


import java.sql.*;

public class ConnectionSql {
private static Connection cn;
private static Statement st;

ResultSet rs;
public ConnectionSql() {
Connect();
}

public static void Connect()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection("jdbc:odbc:movi_maneger","","");

}
catch (Exception ex)
{
}
}
// NewJFrame jframe initComponents()
public static void insert() throws Exception{
Connect();
st = cn.createStatement();
String sql="Insert into T_Film (name,family) values('%s','%s')";
sql=String.format(sql,jTextfield1.gettext,jTextfie ld2.gettext);
rs = st.execute(sql);
}
}

spiderman200700
شنبه 23 اردیبهشت 1391, 11:28 صبح
سلام.
اینو امتحان کنید.

import java.sql.*;

public class ConnectionSql {
private static Connection cn;
private static Statement st;

ResultSet rs;
public ConnectionSql() {
Connect();
}

public static void Connect()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection("jdbc:odbc:movi_manege r","","");

}
catch (Exception ex)
{
}
}
// NewJFrame jframe initComponents()
public static void insert() throws Exception{
Connect();
st = cn.createStatement();
String sql="Insert into T_Film (name,family) values('%s','%s')";
sql=String.format(sql,jTextfield1.getText(),jTextf ield2.getText());
rs = st.execute(sql);
}
}

M0TR!X
شنبه 23 اردیبهشت 1391, 15:23 عصر
سلام.

اشتباه اینجاست که شما خاصییت gettext رو اشتباه میزنی!!

شما اینطوری میزنی .jTextfield1.gettext

باید به این شکل باشه ! jTextfield1.getText()

به بزرگی حروف و پرانتز اخر توجه کن

arezo1174
شنبه 23 اردیبهشت 1391, 16:05 عصر
اساتید مشکل من این بود که به component ها دسترسی نداشتم که با کد زیر کد حل شد الان به جایی که ستاره گذاشتم گیر میده:گریه::گریه:



package movimaneger;

import java.sql.*;
import javax.sql.*;
public class ConnectionSql {
private static Connection cn;
private static Statement st;

private static ResultSet rs;
public ConnectionSql() {
Connect();
}

public static void Connect()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection("jdbc:odbc:movi_maneger","","");
}
catch (Exception ex)
{
}
}
// NewJFrame jframe initComponents()
public static void insert() throws Exception{
Connect();
st = cn.createStatement();
NewJFrame nf=new NewJFrame();
nf.setSize(600,800);
String sql="Insert into T_Film (name,family) values('%s','%s')";
sql=String.format(sql,nf.txtname.getText(),nf.txtf amily.getText(),());
*********** rs = st.execute(sql);
rs.close();
st.close();
cn.close();
}
}

spiderman200700
شنبه 23 اردیبهشت 1391, 17:33 عصر
کد شما قسمت های دیگه ای نداره؟
یعنی شما دقیقا همین کدی که اینجا گذاشتی رو اجرا میکنی؟!

arezo1174
شنبه 23 اردیبهشت 1391, 18:43 عصر
آقا الان دیگه خطایی نداره ولی:عصبانی++:
عمل درج هم انجام میشه ولی یه رکورد خالی درج میکنه
حتی اون بایین هم میگه یه رکورد درج شد ولی عملا توی جدولم یه رکورد خالی درج میکنه
تغییراتی که اعمال کردم

public static void insert() throws Exception{
Connect();
NewJFrame nf=new NewJFrame();
nf.setSize(600,800);
st = cn.createStatement();
String sql="Insert into T_Film (name_film,name_kargardan,tarikhe_sakht,radeie_sen i,bazigaran)"+
"values('%s','%s','%s','%s','%s')";
sql=String.format(sql,nf.txtfilm.getText(),nf.txtk argardan.getText()
,nf.txtsakht.getText(),nf.txtradeseni.getText(),nf .txtbazigar.getText());
boolean result=st.execute(sql);
System.out.println("ik record sabt shod");
st.close();
cn.close();
}
}

spiderman200700
شنبه 23 اردیبهشت 1391, 19:06 عصر
توی کدی که من میبینم، هیچ مقداری توی دیتابیس ست نمیشه.
چون موقعی که عمل Insert انجام میشه، TextField ها هیچ مقداری ندارن.
اصلا این txtradeseni و txtbazigar کجای کد شما به JFrame اضافه شده؟

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

arezo1174
شنبه 23 اردیبهشت 1391, 19:11 عصر
میدونم که به جای بولین باید ResultSetباشه ولی میگه که نوع اون را عوض کن
st.executeUpdate(sql);

هر چیه مشکل اینجاست:عصبانی++:

arezo1174
شنبه 23 اردیبهشت 1391, 19:17 عصر
استاد کل نداره من میخام یه درج ساده توی sql server2005 بکنم که همش به یه جا گیر.
برنامه خیلی ساده ست.
اینم میدونم که رده سنی باید از datetime باشه ولی فعلا به همین هم گیر میده تا برسه به datetime:گریه:

arezo1174
شنبه 23 اردیبهشت 1391, 19:19 عصر
ولی خوب محض اطلاع شما از دیزاین آماده ی نت بینز استفاده کردم ینی درگ کردم.

spiderman200700
شنبه 23 اردیبهشت 1391, 19:44 عصر
پس اولا متد insert باید توی رویداد کلیک Bottonتون فراخوانی بشه(نه جای دیگه).
دوما موقعی که روی Button کلیک میکنید ، اگه توی TextّFieldهاتون چیزی ننوشته باشید، توی دیتابیس رکورد خالی ثبت میشه. پس مطمئن بشید که موقع کلیک توی TextFieldها چیزی نوشته باشید حتما.

arezo1174
شنبه 23 اردیبهشت 1391, 20:46 عصر
من دوتاش هم رعایت کردم در ضمن مطمئن هستم که متن رو وارد میکنم مگه میشه چیزی ننویسم و توقع درج داشته باشم:متعجب:
من از جاوا زیاد سر در نمیارم ولی دیگه اینا میدونم که وقتی چیزی ننوشتم بس چیزی هم درج نمیشه
متن رو داخل تکس باکس وارد میکنم ولی رکورد خالی درج میشه
وقتی دیباگ میکنم خطای زیرو بهم میده

Not able to submit breakpoint LineBreakpoint Object.java : 224, reason: Breakpoint belongs to disabled source root 'C:\Program Files\Java\jdk1.6.0_04\src.zip'. See Window/Debugging/Sources.
Invalid LineBreakpoint Object.java : 224
User program running

arezo1174
شنبه 23 اردیبهشت 1391, 20:54 عصر
اینم نتیجه ی اجرام:

init:
deps-jar:
compile:
run:
ik record sabt shod
BUILD SUCCESSFUL (total time: 1 minute 36 seconds)

spiderman200700
شنبه 23 اردیبهشت 1391, 20:58 عصر
پس اگه میشه، تمام کدهای بر نامه رو اینجا بذارید که ببینیم.
همه ی کد ها، حتی کدهایی رو که خود NetBeans به پروژه اضافه کرده.

arezo1174
شنبه 23 اردیبهشت 1391, 21:04 عصر
اولا مرسی از توجه تون:لبخندساده:

این کدای دیزاین:

/*
* NewJFrame.java
*
* Created on May 12, 2012, 8:46 AM
*/

package movi_manager;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author leily
*/
public class NewJFrame extends javax.swing.JFrame {

/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

txtbazigar = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
txtradeseni = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
txtsakht = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
txtkargardan = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
txtfilm = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);

jLabel5.setText("بازیگر :"); // NOI18N

jLabel4.setText("رده ی سنی :"); // NOI18N

jLabel3.setText("تاریخ ساخت‌:"); // NOI18N

jLabel2.setText("نام کارگردان :"); // NOI18N

jLabel1.setText("نام فیلم : "); // NOI18N

jButton1.setText("insert");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Delete");

jButton3.setText("update");

jButton4.setText("export");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(66, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createParallelGroup(javax.swing.GroupLayout .Alignment.TRAILING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(txtbazigar)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(jLabel5))
.addGroup(layout.createSequentialGroup()
.addComponent(txtradeseni)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(jLabel4))
.addGroup(layout.createSequentialGroup()
.addComponent(txtsakht)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(jLabel3))
.addGroup(layout.createSequentialGroup()
.addComponent(txtkargardan)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(jLabel2))
.addGroup(layout.createSequentialGroup()
.addComponent(txtfilm, javax.swing.GroupLayout.PREFERRED_SIZE, 197, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addComponent(jLabel1)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILI NG, layout.createSequentialGroup()
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.UNRELATED)
.addComponent(jButton2)
.addGap(31, 31, 31)
.addComponent(jButton1))
.addComponent(jButton4, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout .Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(22, 22, 22)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(txtfilm, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(txtkargardan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(txtsakht, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(txtradeseni, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Component Placement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(txtbazigar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.G roupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2)
.addComponent(jButton3))
.addGap(18, 18, 18)
.addComponent(jButton4)
.addContainerGap(71, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
ConnectionSql.Connect();
ConnectionSql.insert();
} catch (Exception ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Le vel.SEVERE, null, ex);
}

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
Export1 e1=new Export1();
e1.web();
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
public javax.swing.JTextField txtbazigar;
public javax.swing.JTextField txtfilm;
public javax.swing.JTextField txtkargardan;
public javax.swing.JTextField txtradeseni;
public javax.swing.JTextField txtsakht;
// End of variables declaration

}

arezo1174
شنبه 23 اردیبهشت 1391, 21:04 عصر
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package movi_manager;
import java.sql.*;
import javax.sql.*;

public class ConnectionSql {
private static Connection cn;
private static Statement st;
ResultSet rs;

public ConnectionSql() {
Connect();
}

public static void Connect()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn = DriverManager.getConnection("jdbc:odbc:movi_maneger","","");

}
catch (Exception ex)
{
}
}
public static void insert() throws Exception{
Connect();
NewJFrame nf=new NewJFrame();
nf.setSize(600,800);
st = cn.createStatement();
String sql="Insert into T_Film (name_film,name_kargardan,tarikhe_sakht,radeie_sen i,bazigaran)"+
"values('%s','%s','%s','%s','%s')";
sql=String.format(sql,nf.txtfilm.getText(),nf.txtk argardan.getText()
,nf.txtsakht.getText(),nf.txtradeseni.getText(),nf .txtbazigar.getText());
int rs= st.executeUpdate(sql);
System.out.println("ik record sabt shod");
st.close();
cn.close();
}
}

arezo1174
شنبه 23 اردیبهشت 1391, 21:05 عصر
package movi_manager;

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;


public class Export1 {
public void web() {
try {
String pageAddress = "c:/java.htm";
URI uri = new URI(pageAddress);
Desktop.getDesktop().browse(uri);
} catch (IOException ex) {
ex.printStackTrace();
} catch (URISyntaxException ex) {
ex.printStackTrace();
}
}
}

arezo1174
شنبه 23 اردیبهشت 1391, 21:06 عصر
اینم main

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package movi_manager;

/**
*
* @author leily
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new NewJFrame().show();
}

}

spiderman200700
شنبه 23 اردیبهشت 1391, 21:45 عصر
همونطور که فکر میکردم موقع Insert از همه ی TextField ها مقدار خالی خونده میشه.
این دو متد رو اینطوری که من نوشتم بنویسید. انشاالله درست میشه.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
ConnectionSql.Connect();
ConnectionSql.insert(txtfilm.getText(), txtkargardan.getText(), txtsakht.getText()
, txtradeseni.getText(), txtbazigar.getText());
} catch (Exception ex) {
}

}


public static void insert(String film, String kargardan, String sakht, String radeseni, String bazigar) throws Exception {
Connect();
st = cn.createStatement();
String sql = "Insert into T_Film (name_film,name_kargardan,tarikhe_sakht,radeie_sen i,bazigaran)"
+ "values('%s','%s','%s','%s','%s')";
sql = String.format(sql, film, kargardan, sakht, radeseni, bazigar);
int rs = st.executeUpdate(sql);
System.out.println("ik record sabt shod");
st.close();
cn.close();
}

arezo1174
شنبه 23 اردیبهشت 1391, 22:07 عصر
مرسی یه دنیا ممنون اجرا شد استاد :لبخند:
دست شما درد نکنه :تشویق::تشویق::تشویق:

arezo1174
شنبه 23 اردیبهشت 1391, 22:12 عصر
آقا هر کی هستی انشاالله که توی زندیگیت موفق باشی که به فکر دیگران هم هستی توی دانشگاه ها که از یکی سوال میبرسی طرف فکر میکنه الان میخای ارث بدرشا ازش بگیری نباید لام تا کام حرف بزنه:افسرده:
بازم مرسی که کمک کردی.

spiderman200700
شنبه 23 اردیبهشت 1391, 22:37 عصر
خواهش میکنم.
من استاد نیستم.
موفق باشی:لبخندساده:

arezo1174
دوشنبه 25 اردیبهشت 1391, 22:49 عصر
مجددا سلام
من همین مشکل رو تو متد updateو delete هم دارم ینی بازم هیچ خطایی نمیده مسیج باکس هم نمایش داده میشه ولی حذف یا update عملا انجام نمیشه:گریه::گریه:
اساتید ببخشید میدونم خیلی مزاحمت ایجاد میکنم ولی خوب چه کنم مجبورم:افسرده:

اگه امکانش هست یه نگاه به کدم بندازید.

public static void Delete(String film) throws Exception{
Connect();
st=cn.createStatement();
String sqld="delete from T_Film where name_film='%s'";
String.format(sqld,film);
st.executeUpdate(sqld);
JOptionPane.showMessageDialog(null, "حذف شد");
st.close();
cn.close();
}
public static void update(String film,String bazigar) throws Exception{
Connect();
st=cn.createStatement();
String sqlu="update T_Film set bazigaran='%s' where name_film='%s'" ;
String.format(sqlu, film,bazigar);
st.executeUpdate(sqlu);
JOptionPane.showMessageDialog(null, "به روز رسانی شد.");
st.close();
cn.close();
}



private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:delete
ConnectionSql.Connect();
ConnectionSql.Delete(txtfilm.getText());
} catch (Exception ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Le vel.SEVERE, null, ex);
}
}

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:update
ConnectionSql.Connect();
ConnectionSql.update(txtfilm.getText(), txtbazigar.getText());
} catch (Exception ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Le vel.SEVERE, null, ex);
}
}

sharifip
سه شنبه 26 اردیبهشت 1391, 00:58 صبح
سلام دوستان منم همین مشکلا دارم ممنون میشیم اگه یکی جواب بده.

همایون افشاری
سه شنبه 26 اردیبهشت 1391, 15:07 عصر
شما باید از تابع st.executeUpdate(sql) استفاده کنی.

arezo1174
سه شنبه 26 اردیبهشت 1391, 17:04 عصر
سلام. اگه دقت کرده باشین استفاده کردم:افسرده:

sharifip
سه شنبه 26 اردیبهشت 1391, 19:53 عصر
سلام دوستان من تازه عضو این سایت شدم خیلی هم وصفشا شنیده بودم برام خیلی جالبه تا الان 137 نفر از این جا دیدن کردن ولی هنوز کسی جواب نداده
ما همچنان منتظریم که یکی از بیننده ها جواب ما را بده و بی تفاوت از اینجا نگذره امیدوارم یکی بیاد و یه جواب مفید بده
منتظریم.

arezo1174
چهارشنبه 27 اردیبهشت 1391, 07:37 صبح
سلام.
هیشکی جواب ما رو نمیده؟؟؟؟؟؟؟
:گریه::گریه::گریه:

sharifip
چهارشنبه 27 اردیبهشت 1391, 14:16 عصر
خوب بیننده های ما به 233 نفر هم رسیده ولی هنوز خبری از جواب نیست.
خیلی ممنون از این همه لطفی که دارین شرمنده میکنید ما رو از این همه جواب.
ما همچنان منتظریم ببینیم کی قراره جواب بده.

spiderman200700
چهارشنبه 27 اردیبهشت 1391, 15:22 عصر
این متد رو اینطوری بنویسید ، ببینید مشکل حل میشه یا نه:
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:delete
ConnectionSql.Delete(txtfilm.getText().trim());
} catch (Exception ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Le vel.SEVERE, null, ex);
}
}

arezo1174
چهارشنبه 27 اردیبهشت 1391, 17:56 عصر
سلام استاد
حل نشد:افسرده:

arezo1174
چهارشنبه 27 اردیبهشت 1391, 17:59 عصر
چرا نتبینز این همه اذیت میکنه؟:افسرده:

spiderman200700
چهارشنبه 27 اردیبهشت 1391, 18:59 عصر
ظاهرا هیچ مشکلی توی کدهاتون نیست. اگرم مشکلی باشه یا توی وارد کردن اطلاعات هست، یا توی دیتابیستون.
واقعا ممکنه ده ها دلیل برای اینطور مشکلات وجود داشته باشه. و برای من سخته که از اینجا مشکل رو تشخیص بدم.
حالا ایندفعه پیشنهاد من اینه که بعد از
String.format(sqlu, film,bazigar);
با متد
System.out.println(sqlu);
چک کنید ببینید مقدار متغییر sqlu چیه. شاید به هر دلیلی، sqlu حاوی دستور درستی برای update یا delete نباشه.

arezo1174
چهارشنبه 27 اردیبهشت 1391, 19:32 عصر
فک نکنم توی دیتابیسم مشکلی باشه وگرنه insert نمیشد درست نمیگم؟؟؟؟؟ ارتباط هم که برقرار شده.
بازم نشد :گریه:

این خروجی منه:

init:
deps-jar:
Compiling 1 source file to C:\Users\leily\Documents\NetBeansProjects\movi_man ager_1\build\classes
compile:
run:
update T_Film set bazigaran='%s' where name_film='%s'
BUILD SUCCESSFUL (total time: 1 minute 31 seconds)

arezo1174
چهارشنبه 27 اردیبهشت 1391, 19:40 عصر
خوب slqu از نوع string هستش، مگه نه اینکه باید از نوع رشته باشه
تنها جایی که خطا میده همون ResultSet که میگه نوع اون را عوض کن مثل همون insert ولی خوب تو درج هم که نوعش عوض کردم مشکلی پیش نیومد.

arezo1174
چهارشنبه 27 اردیبهشت 1391, 19:47 عصر
اینم خروجیه دیباگ:

Listening on 50012
Not able to submit breakpoint LineBreakpoint Object.java : 224, reason: Breakpoint belongs to disabled source root 'C:\Program Files\Java\jdk1.6.0_04\src.zip'. See Window/Debugging/Sources.
Invalid LineBreakpoint Object.java : 224
Not able to submit breakpoint LineBreakpoint Main.java : 11, reason: No source root found for URL 'file:/C:/Users/leily/Documents/NetBeansProjects/student/src/student/Main.java', verify the setup of project sources.
Invalid LineBreakpoint Main.java : 11
User program running
User program finished

arezo1174
چهارشنبه 27 اردیبهشت 1391, 20:05 عصر
ببخشید الان خروجی دیباگم اینه:

Listening on 50073
Not able to submit breakpoint LineBreakpoint Object.java : 224, reason: Breakpoint belongs to disabled source root 'C:\Program Files\Java\jdk1.6.0_04\src.zip'. See Window/Debugging/Sources.
Invalid LineBreakpoint Object.java : 224
User program running

spiderman200700
چهارشنبه 27 اردیبهشت 1391, 21:18 عصر
اگه System.out.println(sqlu); رو بعد از String.format(sqlu, film,bazigar); نوشتید و خروجیتون این شده:
init:
deps-jar:
Compiling 1 source file to C:\Users\leily\Documents\NetBeansProjects\movi_man ager_1\build\classes
compile:
run:
update T_Film set bazigaran='%s' where name_film='%s'
BUILD SUCCESSFUL (total time: 1 minute 31 seconds)
خب اگه این دو متد رو اینطوری بنویسید ، به احتمال خیلی زیاد مشکل حل میشه.
public static void Delete(String film) throws Exception {
Connect();
st = cn.createStatement();
String sqld = "delete from T_Film where name_film='%s'";
sqld = String.format(sqld, film);
st.executeUpdate(sqld);
JOptionPane.showMessageDialog(null, "حذف شد");
st.close();
cn.close();
}

public static void update(String film, String bazigar) throws Exception {
Connect();
st = cn.createStatement();
String sqlu = "update T_Film set bazigaran='%s' where name_film='%s'";
sqlu = String.format(sqlu, film, bazigar);
st.executeUpdate(sqlu);
JOptionPane.showMessageDialog(null, "به روز رسانی شد.");
st.close();
cn.close();
}
اشتباه خیلی کوچیک ولی تاثیر گذاری کردید.
اگه با این تغییر مشکل حل بشه، همونطور که حدس زده بودم، مشکل از متغییر sqlu و sqld بوده. که حاوی مقدار درستی برای انجام update و delete نبوده.

البته یه نگاهی هم به این بندازید:
sqlu = String.format(sqlu, film, bazigar);
ببینید جای bazigar و film جابه جا نشده؟ اگه شده درستش کنید.

اگه بازم مشکل وجود داشت، بگید تا شاید راه دیگه ای پیدا کردیم.

arezo1174
چهارشنبه 27 اردیبهشت 1391, 22:02 عصر
استاد متد حذف درست شد اما به روزرسانی نه.
جای فیلم و بازیگر رو هم چک کردم درست بود. حتی به صورت برعکس هم تست کردم ولی بازم جواب نداد.

arezo1174
چهارشنبه 27 اردیبهشت 1391, 22:16 عصر
مرسی استاد مرسی دست شما درد نکنه خیلی خیلی ممنون

spiderman200700
چهارشنبه 27 اردیبهشت 1391, 22:31 عصر
خواهش میکنم.
این یعنی update هم درست شد؟

arezo1174
چهارشنبه 27 اردیبهشت 1391, 22:35 عصر
نه درست نشده بابت deleteبود
:گریه:

spiderman200700
چهارشنبه 27 اردیبهشت 1391, 23:10 عصر
هر مشکلی هست توی این خطه:
String sqlu = "update T_Film set bazigaran='%s' where name_film='%s'";
یا شاید توی جدول T_Film
یه اشتباهی توی این دوتا هست ولی نمیدونم چیه.

arezo1174
چهارشنبه 27 اردیبهشت 1391, 23:33 عصر
ببینم میتونم درست کنم یا نه در غیر این صورت دوباره مزاحم اساتید محترم میشم:افسرده::افسرده:

spiderman200700
پنج شنبه 28 اردیبهشت 1391, 14:37 عصر
امیدوارم درست بشه. موفق باشید.

arezo1174
پنج شنبه 28 اردیبهشت 1391, 23:54 عصر
سلام. ولی درست نشد حالا باید چه کنم؟؟؟؟؟؟؟
کلی فیلم و pdf دانلود کردم ولی هیچ کدوم به کارم نیومد.:افسرده:

arezo1174
جمعه 29 اردیبهشت 1391, 10:40 صبح
حق با شماست به جای خطی که اشاره کردید کد زیر رو گذاشتم اجرا شد ینی به روز رسانی شد اشکال توی %s هستش ولی خوب نمیدونم باید چطور رفع کنم؟؟؟

update T_Film set bazigaran='mohammadi' where name_film='ssss';

spiderman200700
جمعه 29 اردیبهشت 1391, 13:11 عصر
اینطوری بنویسید. ببینید درست میشه یا نه.
public static void update(String film, String bazigar) throws Exception {
Connect();
st = cn.createStatement();
String sqlu = "update T_Film set bazigaran='" + bazigar + "' where name_film='" + film + "'";
st.executeUpdate(sqlu);
JOptionPane.showMessageDialog(null, "به روز رسانی شد.");
st.close();
cn.close();
}

فقط چک کنید ببینید جای bazigar و film رو اشتباه ننوشته باشم.

همایون افشاری
جمعه 29 اردیبهشت 1391, 13:12 عصر
مقدار متغیر film و bazigar رو از وررودی میگیرید؟
امکان داره توی ورودی مقدار نامناسب برای این دو متغیر وارد بشه، مثلا مقدار دارای ' باشه و ...
این خط رو قبل از executeUpdate بزارید ببینید خروجی چی میشه:
System.out.println(sqlu);

sharifip
جمعه 29 اردیبهشت 1391, 13:49 عصر
سلام. بله از jtextfield دریافت میکنم ،دستی مشکلی ندارم با تکس باش updateنمیکنه
اینم اجرا بعد از گفته ی شما:

init:
deps-jar:
compile:
update T_Film set bazigaran='l' where name_film='sss'
debug:
BUILD SUCCESSFUL (total time: 2 minutes 12 seconds)

sharifip
جمعه 29 اردیبهشت 1391, 13:53 عصر
ببخشید من به جای کاربر قبلی جواب دادم آخه مشکله منم همینه با اجازه ی arezo1174 کداشا کپی کردم هر کاری که این خانم گفته منم کردم ولی همچنان مشکل برطرف نشده.

همایون افشاری
جمعه 29 اردیبهشت 1391, 13:53 عصر
سلام.
در واقع مشکل اینه که بعد از اجرای این کد دیتابیس update نمیشه ؟

همایون افشاری
جمعه 29 اردیبهشت 1391, 13:59 عصر
سلام.
در واقع مشکل اینه که بعد از اجرای کد دیتابیس update نمی شه؟
منظورت از اینکه "دستی مشکل ندارم" چیه؟

arezo1174
جمعه 29 اردیبهشت 1391, 14:01 عصر
سلام
چه خوب که همه هستن:لبخند:
اولا اینکه اشکال نداره همون جور هم که بیداست این یه سایت open source:لبخندساده:
بعدم خوشحالم که یه عده دارن مطلب رو دنبال میکنن.
بله آقا خروجی منم همین بود، بله update نمیشه در ضمن اگه مطالب قبلی رو خونده باشین با کمک spaiderman حذف و درج رو انجام دادیم ینی مشکلی توی ارتباط با sql نیست.

همایون افشاری
جمعه 29 اردیبهشت 1391, 14:04 عصر
این طور که به نظر می رسه کد مشکلی نداره.
از چه دیتابیسی استفاده می کنید.
سعی کنید خروجی ای که توی قسمت قبل گفتم رو مستقیما توی دیتابیس اجرا کنید.
آیا trigger ی برای update توی دیتابیس تعریف کردید؟

arezo1174
جمعه 29 اردیبهشت 1391, 14:10 عصر
sql server2005
نه از تریگر استفاده نکردم.

arezo1174
جمعه 29 اردیبهشت 1391, 14:12 عصر
منظورتون از اینکه مستقیم توی دیتابیس استفاده کنم چیه؟
ینی توی sql server تو قسمت new query اجرا کنم؟

arezo1174
جمعه 29 اردیبهشت 1391, 14:22 عصر
اگه منظور شما همینه که من اینا اجرا کردم مشکلی هم نبوده


update T_Film set bazigaran='mohammadi' where name_film='y'

اینم خروجی

(1 row(s) affected)

arezo1174
جمعه 29 اردیبهشت 1391, 14:23 عصر
وگرنه اگه امکانش هست یکم راهنمایی کنید چون من روش دیگه ای بلد نیستم:افسرده:

همایون افشاری
جمعه 29 اردیبهشت 1391, 14:26 عصر
بله همونجا.
البته یه نکته. ممکنه مشکل از کدی باشه که کپی کردید. سعی کنید خط
String sqlu = "update T_Film set bazigaran='%s' where name_film='%s'";
رو خودتون دستی بنویسید.
ممکنه به جای ' اشتباها ` (کلید بالای tab) استفاده شده باشه.

sharifip
جمعه 29 اردیبهشت 1391, 14:31 عصر
ببخشید این وسط من یه پارازیت بندازم.
اگه بخوایم که نتیجه را در یه jtable مشاهده کنیم باید چه کار کنیم؟ مثلا بخوایم که درج رو در jtable ببینینم که درج شده یا نه چکار باید بکنیم؟نیازی به کدنویسی داره یا اینکه میشه از طریق property باید تنظیمات خاصی را انجام بدیم؟

arezo1174
جمعه 29 اردیبهشت 1391, 14:41 عصر
دستی هم وارد کردم درست بود نه مطمئن هستم که سینگل کوتیشن میگیرم
'دسته'
مشکل تو همون %s شک ندارم.

همایون افشاری
جمعه 29 اردیبهشت 1391, 14:42 عصر
مشکل دیگه ای که به ذهن من می رسه اینه که ممکنه رشته ای که توی textfield در ج می شه از نظر کدینگ با مقداری که توی دیتابیس برای name_film ذخیره شده متفاوت باشه. در مورد متد حذف هم مقدار رو با textfield می گیرید؟

arezo1174
جمعه 29 اردیبهشت 1391, 14:48 عصر
بله از طریق همون jtextfield هم درج و هم حذف میکنم.

arezo1174
جمعه 29 اردیبهشت 1391, 14:51 عصر
توی نتبینز که از نوع stringتعریف شده، تو sql هم ncharتعریف کردم
هر دو از نوع رشته ست.

همایون افشاری
جمعه 29 اردیبهشت 1391, 14:54 عصر
به نظر من کد مشکلی نداره!!
ممکنه تکراری باشه اما این کار ها رو به ترتیب انجام یدید :
1- کدی که مقدار sqlu رو توی خروجی چاپ می کنه اجرا کنید.
System.out.println(sqlu);
2- خروجی رو کپی کنید و بعد عینا داخل new query بزارید.
3- حالا query رو اجرا کنید.

sharifip
جمعه 29 اردیبهشت 1391, 15:07 عصر
حضار محترم منم هستم سوال پرسیدم به منم توجه کنید افسرده میشم:گریه:

همایون افشاری
جمعه 29 اردیبهشت 1391, 15:14 عصر
jtable توی فرم موجوده ؟
یعنی می تونی اطلاعات حال حاضر دیتابیس رو توش ببینی ؟

sharifip
جمعه 29 اردیبهشت 1391, 15:16 عصر
بله درگ کردم

sharifip
جمعه 29 اردیبهشت 1391, 15:20 عصر
نه نمیتونم ببینم یعنی تنظیمات لازم را نمیدونم میدونم توی c# روی دیتاگردویو کلیک راست میکنی و یک سری مراحل رو طی میکنی تا با بانک ارتباط برقرار بشه ولی اینجا نمیدونم باید چه کار کرد؟؟

همایون افشاری
جمعه 29 اردیبهشت 1391, 15:20 عصر
یه نکته دیگه!!
این قسمت رو به کمک spiderman200700 به کد اضافه کردید :
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:delete
ConnectionSql.Delete(txtfilm.getText().trim());
} catch (Exception ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Le vel.SEVERE, null, ex);
}
}



در مورد کلید insert هم این کار انجام شد ؟ (به وجود trim دقت کنید!!)

همایون افشاری
جمعه 29 اردیبهشت 1391, 15:24 عصر
من الان به netBeans دسترسی ندارم و دقیقا نمی تونم بگم که چی کار کنی. با یه کم سرچ می تونی tutorial مناسبو (!) پیدا کنی.

arezo1174
جمعه 29 اردیبهشت 1391, 15:38 عصر
ببخشید یه سوال؟؟
توی نتبینز گاهی بعد از اجرا توی قسمت دیزاین بعضی از خطا خاکستری میشه خطی که خودم نوشتم مثل این میمونه که قفل کرده هیچ تغییری نمیزاره بدیم تو این مواقع چه کار کنیم؟؟
مرسی از جواب هایی که دادین.
تشکر.

sharifip
جمعه 29 اردیبهشت 1391, 15:41 عصر
tutorial ی که فرمودین چی هست؟؟؟

arezo1174
جمعه 29 اردیبهشت 1391, 15:46 عصر
مرسی از اساتیدی که تا الان ما رو همراهی کردن:لبخندساده:

همایون افشاری
جمعه 29 اردیبهشت 1391, 15:53 عصر
tutorial ی که فرمودین چی هست؟؟؟


منظورم از tutorial (در جواب سوال قبلی sharifip) همون آموزش گام به گام خودمونه !!!!

توی نتبینز گاهی بعد از اجرا توی قسمت دیزاین بعضی از خطا خاکستری میشه خطی که خودم نوشتم مثل این میمونه که قفل کرده هیچ تغییری نمیزاره بدیم تو این مواقع چه کار کنیم؟؟
خیلی وقته با netbeans کار نکردم ولی فکر می کنم در اون حالت برنامه باید در حال اجرا باشه. برای اینکه بتونید کد رو تغییر بدید باید اجرای برنامه متوقف باشه.
یا اینکه ممکنه اون بخش از کد دارای وابستگی هایی باشه که تغییرش در برنامه خطا ایجاد می کنه. میشه در قسمت دیزاین گرافیکی تغییر رو اعمال کرد.

همایون افشاری
جمعه 29 اردیبهشت 1391, 15:54 عصر
مشکل insert حل شد ؟

arezo1174
جمعه 29 اردیبهشت 1391, 16:11 عصر
بله حل شده قبلا با استاد spaiderman حل کردیم.

arezo1174
جمعه 29 اردیبهشت 1391, 16:13 عصر
برنامه در حال اجرا نیست میدونم اینا:لبخندساده:

spiderman200700
جمعه 29 اردیبهشت 1391, 19:15 عصر
این کار رو که تو پست 49 گفتم، انجام دادید؟
public static void update(String film, String bazigar) throws Exception {

Connect();

st = cn.createStatement();

String sqlu = "update T_Film set bazigaran='" + bazigar + "' where name_film='" + film + "'";

st.executeUpdate(sqlu);

JOptionPane.showMessageDialog(null, "به روز رسانی شد.");

st.close();

cn.close();

}

arezo1174
جمعه 29 اردیبهشت 1391, 19:37 عصر
سلام. اشکال کار یافتم استاد این بار به sqlu ربطی نداشت من وقتی format مینوشتم اتوماتیک خودش برام میزد و منم همون رو قبول میکردم نگو جای فیلم و بازیگر باهم جا به جاست، جابهجا که کردم خودش درست:لبخند:
ممنونم از همتون به از استاد spaiderman که منا تحمل میکنه و صبورانه جواب میده:لبخندساده:

sqlu = String.format(sqlu, bazigar,film);

arezo1174
شنبه 30 اردیبهشت 1391, 09:48 صبح
سلام مجدد به همه ی اساتید محترم:لبخندساده:
این مطلب هم برای کاربر sharifip مفیده و هم من:افسرده:

در رابطه با jtable که بر نمیشه و بنجره ای ظاهر میشه تحت عنوان Result set Type is TYPE_FORWARD_ONLY

اساتید باور کنید من اول همه ی تلاشم رو میکنم که خودم حلش کنم وقتی دیگه به بن بست میخورم اینجا میام(تنبل نیستم) ینی حاضر و آماده هیچی رو نمیخام:گریه:
با عرض شرمندگی به کدم نگاه میکنید؟؟

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

try {
Connection con;
Statement st;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:movi_maneger","","");

st =(Statement)con.createStatement();
ResultSet rs = st.executeQuery("select *from T_Film");
rs.last();
int rc = rs.getRow();
rs.beforeFirst();
int cc = 5;
String[] header = {"name_film", "name_kargardan", "tarekh_sakht", "rade_seni", "bazigaran"};
String[][] data = new String[rc][cc];
int i = 0;
while (rs.next()) {
data[i][0] = rs.getString("sfilm");
data[i][1] = rs.getString("skargardan");
data[i][2] = rs.getString("ssakht");
data[i][3] = rs.getString("srade_seni");
data[i][4] = rs.getString("sbazigar");
i++;
}
jTable1 = new JTable(data, header);
jScrollPane1.setViewportView(jTable1);
rs.close();
st.close();
con.close();
} catch (Exception exception) {
JOptionPane.showMessageDialog(null, exception.getMessage());
}

}

spiderman200700
شنبه 30 اردیبهشت 1391, 11:28 صبح
از مطالب سایت زیر استفاده کنید. بعد اگه مشکلی بود مطرح کنید.
http://java.tadbirpoya.ir/articles/JAVA%20SE/JTable.htm

arezo1174
شنبه 30 اردیبهشت 1391, 13:34 عصر
سلام. این سایتا قبلا دیدم؛ به نتیجه ای که رسیدم کدای که گذاشتم به هر حال مرسی.

arezo1174
شنبه 30 اردیبهشت 1391, 19:56 عصر
من اومدم به صورت دستی یه جدول بر کردم با کدای زیر هیچ مشکلی هم نبود ولی توی کدای قبلی هر کاری کردم داده رو از جدول نخوند.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String[] hdr={"ID","last name","first name"};
Object[][] data=
{
{100,"aaaaaaa","qqqqqq"},{101,"www","hhh"},{102,"mohammad","sha"}
};
jTable1 =new JTable(data,hdr);
jScrollPane1.setViewportView(jTable1);
}

همایون افشاری
شنبه 30 اردیبهشت 1391, 20:17 عصر
بعد از حلقه while کد زیر را بزارید و بعد نتیجه رو بررسی کنید (که آیا اصلا چیزی وارد آرایه میشه یا نه)
for(int j=0; j<i; j++)System.out.println(data[j][0]);

arezo1174
شنبه 30 اردیبهشت 1391, 21:33 عصر
من برنامه رو به این صورت هم نوشتم
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
ResultSet rs = null;
ConnectionSql.Connect();
ConnectionSql.search(jTextField1.getText().trim()) ;
rs.last();
int rc = rs.getRow();
rs.beforeFirst();
int cc = 5;
String[] header = {"name_film", "name_kargardan", "tarekh_sakht", "rade_seni", "bazigaran"};
String[][] data = new String[rc][cc];
int i =0;
while (rs.next()) {
data[i][0] = rs.getString("sfilm");
data[i][1] = rs.getString("skargardan");
data[i][2] = rs.getString("ssakht");
data[i][3] = rs.getString("srade_seni");
data[i][4] = rs.getString("sbazigar");
i++;
}
for(int j=0; j<i; j++)
System.out.println(data[j][0]);
jTable1 = new JTable(data, header);
jScrollPane1.setViewportView(jTable1);

rs.close();


} catch (Exception ex) {
Logger.getLogger(NewJFrame2.class.getName()).log(L evel.SEVERE, null, ex);
}


و طبق گفته ی شما خروجی:

init:
deps-jar:
compile-single:
run-single:
select * from T_Film where name_film='y'
May 19, 2012 10:07:04 AM movi_manager.NewJFrame2 jButton3ActionPerformed
SEVERE: null
java.lang.NullPointerException
at movi_manager.NewJFrame2.jButton3ActionPerformed(Ne wJFrame2.java:165)
at movi_manager.NewJFrame2.access$200(NewJFrame2.java :17)
at movi_manager.NewJFrame2$3.actionPerformed(NewJFram e2.java:74)
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:6041)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3265)
at java.awt.Component.processEvent(Component.java:580 6)
at java.awt.Container.processEvent(Container.java:205 8)
at java.awt.Component.dispatchEventImpl(Component.jav a:4413)
at java.awt.Container.dispatchEventImpl(Container.jav a:2116)
at java.awt.Component.dispatchEvent(Component.java:42 43)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3916)
at java.awt.Container.dispatchEventImpl(Container.jav a:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440 )
at java.awt.Component.dispatchEvent(Component.java:42 43)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:121)

arezo1174
شنبه 30 اردیبهشت 1391, 21:52 عصر
خوب مقدار جدول مگه نه اینکه باید با تعداد سطرها rc و تعداد ستون ها cc باید پر بشه که به آرایه dataتخصیص داده میشه حتی اگه جدول هم خالی باشه ینی هیچ رکوردی نداشته باشه باید مقدار header رو توی جدول نشان بده که اونم نشون نمیده به Resultset گیر میده، دستوری که شما گفتین به #83(کد قبلی) اضافه کردم همون خطای قبلی رو داد(Result set Type is TYPE_FORWARD_ONLY).
با سپاس فراوان.

spiderman200700
شنبه 30 اردیبهشت 1391, 23:40 عصر
در این صفحه قسمت "ساختن مدلي از جدول " رو بخونید.
http://java.tadbirpoya.ir/articles/JAVA%20SE/JTable%20Tutorial.htm

استفاده از مدل جدول ، بهترین را برای رسم جدول هست. و میتونید کاملا جدول رو کنترل کنید.

arezo1174
یک شنبه 31 اردیبهشت 1391, 08:42 صبح
استاد، جناب این ساتا قبلا دیدم که توسط خودتون به کابرای دیگه توصیه کردین ولی بازم نگاه کردم این اومده به صورت دستی به جدول مقدار داده

private Object[][] data = {
{"Mary", "Campione",
"Snowboarding", new Integer(5), new Boolean(false)},
{"Alison", "Huml",
"Rowing", new Integer(3), new Boolean(true)},
{"Kathy", "Walrath",
"Knitting", new Integer(2), new Boolean(false)},
{"Sharon", "Zakhour",
"Speed reading", new Integer(20), new Boolean(true)},
{"Philip", "Milne",
"Pool", new Integer(10), new Boolean(false)},
};


من نمیخام این کارا بکنم میخام که بره از جدول sql server داده ها رو بخونه!!!!
که یه بنجره باز میشه تحت عنوان (Result set Type is TYPE_FORWARD_ONLY)
چرا این همه اذیت میکنه تو هر گامی که برمیدارم یه خطا میده دیگه کم اوردم:گریه::گریه::گریه:

sharifip
یک شنبه 31 اردیبهشت 1391, 18:11 عصر
خیلی ممنون از همه. دوستان ناامید نشد به این تایپک هم سر بزنید یعنی جواب بدید ما همچنان منتظریم که از نظرات شما استفاده کنیم.
قربونتون بشم جواب بدید:ناراحت:

arezo1174
یک شنبه 31 اردیبهشت 1391, 18:57 عصر
خیلی ممنون از کاربرsharifip .
منم منتظرم که فرشته ی نجاتمون از راه برسه و ما را نجات بده:گریه::گریه::گریه:

spiderman200700
یک شنبه 31 اردیبهشت 1391, 20:17 عصر
اینم یه کد کاملا داینامیک که جدول دیتابیس رو کاملا توی یه JTable نگاشت میکنه و بر اساس مثال همون سایتی که گذاشتم نوشتمش:

rs = st.executeQuery("select * from tablename");

int col = rs.getMetaData().getColumnCount();
Vector<String> columnNames = new Vector<String>();
for (int i = 1; i <= col; i++) {
columnNames.add(rs.getMetaData().getColumnName(col ));
}

Vector<Vector> data = new Vector<Vector>();
while (rs.next()) {
Vector<String> row = new Vector<String>();
for (int c = 1; c <= col; c++‎‎‎‎) {
row.add(rs.getString(col));
}
data.add(row);
}

JTable table = new JTable(data, columnNames);


این کد کاملا جواب میده
اگه احیانا جاییشو متوجه نشدید ، بگید تا توضیح بدم.

همایون افشاری
یک شنبه 31 اردیبهشت 1391, 20:21 عصر
خروجی این کد رو بزارید ببینیم مشکل از کجاست :
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
ResultSet rs = null;
ConnectionSql.Connect();
ConnectionSql.search(jTextField1.getText().trim()) ;

ArrayList filList = new ArrayList();
ArrayList karList = new ArrayList();
ArrayList tarList = new ArrayList();
ArrayList radList = new ArrayList();
ArrayList bazList = new ArrayList();
int i =0;
while (rs.next()) {
filList.add(rs.getString("sfilm"));
karList.add(rs.getString("skargardan"));
tarList.add(rs.getString("ssakht"));
radList.add(rs.getString("srade_seni"));
bazList.add(rs.getString("sbazigar"));
i++;
}
System.out.println(i + "--" + filList.size());
for(int j=0; j<filList.size(); j++)
System.out.println(filList.get(j));
//jTable1 = new JTable(data, header);
//jScrollPane1.setViewportView(jTable1);

rs.close();


} catch (Exception ex) {
Logger.getLogger(NewJFrame2.class.getName()).log(L evel.SEVERE, null, ex);
}
}

arezo1174
دوشنبه 01 خرداد 1391, 00:17 صبح
سلام. مرسی از جوابتون
نوشته ی استاد spaiderman که به متغیر c درون حلقه ی for گیر میده هر جور که تعریف کردم نشد بیرون از حلقه، با یه نام دیگه و... خلاصه نشد.
و اما تغییرات استاد افشاری اونم جواب نداد:عصبانی++:
خروجی استاد افشاری

init:
deps-jar:
compile:
run:
select * from T_Film where name_film='y'

arezo1174
دوشنبه 01 خرداد 1391, 00:18 صبح
سلام. مرسی از جوابتون
نوشته ی استاد spaiderman که به متغیر c درون حلقه ی for گیر میده هر جور که تعریف کردم نشد بیرون از حلقه، با یه نام دیگه و... خلاصه نشد.
و اما تغییرات استاد افشاری اونم جواب نداد:عصبانی++:
خروجی استاد افشاری

init:
deps-jar:
compile:
run:
select * from T_Film where name_film='y'

spiderman200700
دوشنبه 01 خرداد 1391, 10:33 صبح
کد من به هیچ عنوان مشکلی نداره. چون تستش کردم.

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

arezo1174
دوشنبه 01 خرداد 1391, 18:08 عصر
سلام. میدونم که یه سری از کدا رو خودم باید بهش اضافه کنم این کارم کردم. خیلی ممنون.
مرسی دست شما درد نکنه خودم شروع کردم خودمم باید تمومش کنم.:افسرده:

همایون افشاری
دوشنبه 01 خرداد 1391, 20:07 عصر
فکر می کنم لااقل برای خط 21 کد باید یه چیزی نمایش داده بشه.
بهر حال این نشون میده که ResultSet خالیه و ممکنه مشکل از متد search باشه.

همایون افشاری
دوشنبه 01 خرداد 1391, 20:29 عصر
کد spiderman خیلی خوب و کامله. توصیه می کنم سعی کنید اشکالشو از بین ببرید و از همون استفاده کنید.
توی خط 12 بخش ++c متغیر C به شکل Uppercase نوشته شده که ممکنه اشکال از همون جا باشه.

arezo1174
دوشنبه 01 خرداد 1391, 23:20 عصر
خدا خیرتون بده.
اگه موفق شدم حتما خبرتون میکنم اگه هم که نه دوباره مزاحم میشم.:افسرده:

arezo1174
سه شنبه 02 خرداد 1391, 20:39 عصر
سلام مجدد. اساتید این خطایی هست تو کد استاد spaiderman میده، من که ازش سر در نمیارم:عصبانی++:
init:
deps-jar:
Compiling 1 source file to D:\movi_manager_1_1\build\classes
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int c = 1; c <= col; C++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int c = 1; c <= col; C++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int c = 1; c <= col; C++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int c = 1; c <= col; C++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int c = 1; c <= col; C++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: ';' expected
for (int c = 1; c <= col; C++?????) {
6 errors
BUILD FAILED (total time: 1 second)

arezo1174
سه شنبه 02 خرداد 1391, 21:17 عصر
ببخشید یه سوال دیگه؟؟؟
در چه صورتیه که executeqouery را شناسایی نمکنه؟؟؟

spiderman200700
سه شنبه 02 خرداد 1391, 21:44 عصر
اشتباها یکی از cهای حلقه ی for بزرگ تایپ شده بود.البته تقصیر سایته که بعضی حرف ها رو اینطوری میکنه.

حلقه ی for رو اینطوری بنویسید، درست میشه.
for (int i = 1; i <= col; i++‎‎‎‎‎‎‎‎‎) {
row.add(rs.getString(col));
}




ببخشید یه سوال دیگه؟؟؟
در چه صورتیه که executeqouery را شناسایی نمکنه؟؟؟
منظورتون چیه؟

arezo1174
سه شنبه 02 خرداد 1391, 22:17 عصر
این کارا خودمم هم کردم جواب نداد نگاه کنید

init:
deps-jar:
Compiling 1 source file to D:\movi_manager_1_1\build\classes
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int i = 1; i <= col; i++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int i = 1; i <= col; i++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206

arezo1174
سه شنبه 02 خرداد 1391, 22:23 عصر
الان با executeqoury مشکلی ندارم حل شده ولی وقتی کتابخونه ی زیر بود شناسایی نمیکرد خطا میداد که با حذف کردن خط زیر مشکل حل شد میخاستم بدونم چرا؟؟؟؟؟؟
import java.beans.Statement;

spiderman200700
سه شنبه 02 خرداد 1391, 22:41 عصر
الان با executeqoury مشکلی ندارم حل شده ولی وقتی کتابخونه ی زیر بود شناسایی نمیکرد خطا میداد که با حذف کردن خط زیر مشکل حل شد میخاستم بدونم چرا؟؟؟؟؟؟
import java.beans.Statement;

شما کلاس Statement از پکیج beans رو import کرده بودید. توی این کلاس متد executeQuery تعریف نشده.
executeQuery توی کلاس Statement از پکیج sql تعریف شده. باید این کلاس رو import کنید.

arezo1174
سه شنبه 02 خرداد 1391, 22:50 عصر
گفتم که الان مشکلی ندارم حذف کردم .
برام جالب بود حتی وقتی یه کتابخونه اضافه هم باشه خطا میده کتابخونه ی sql هم بود.
دیدید به متغیر i هم گیر میده:متعجب:

spiderman200700
سه شنبه 02 خرداد 1391, 22:52 عصر
این کارا خودمم هم کردم جواب نداد نگاه کنید

init:
deps-jar:
Compiling 1 source file to D:\movi_manager_1_1\build\classes
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int i = 1; i <= col; i++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206
for (int i = 1; i <= col; i++?????) {
D:\movi_manager_1_1\src\movi_manager\NewJFrame1.ja va:114: illegal character: \8206

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

arezo1174
سه شنبه 02 خرداد 1391, 23:11 عصر
چشم.
این از شانسه منه:گریه:

arezo1174
چهارشنبه 03 خرداد 1391, 00:29 صبح
الان داره همون خطایی که به اولین کدی که خودم نوشته بودم میده در واقع اکسپشن میده
init:
deps-jar:
Compiling 1 source file to D:\movi_manager_1_1\build\classes
compile-single:
run-single:
May 22, 2012 1:03:37 PM movi_manager.NewJFrame1 jButton1ActionPerformed
SEVERE: null
java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
at sun.jdbc.odbc.JdbcOdbcResultSet.last(JdbcOdbcResul tSet.java:2291)
at movi_manager.NewJFrame1.jButton1ActionPerformed(Ne wJFrame1.java:97)
at movi_manager.NewJFrame1.access$000(NewJFrame1.java :21)
at movi_manager.NewJFrame1$1.actionPerformed(NewJFram e1.java:60)
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:6041)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3265)
at java.awt.Component.processEvent(Component.java:580 6)
at java.awt.Container.processEvent(Container.java:205 8)
at java.awt.Component.dispatchEventImpl(Component.jav a:4413)
at java.awt.Container.dispatchEventImpl(Container.jav a:2116)
at java.awt.Component.dispatchEvent(Component.java:42 43)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3916)
at java.awt.Container.dispatchEventImpl(Container.jav a:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440 )
at java.awt.Component.dispatchEvent(Component.java:42 43)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:121)
BUILD SUCCESSFUL (total time: 2 minutes 24 seconds)

arezo1174
چهارشنبه 03 خرداد 1391, 00:32 صبح
خطایی که به برنامه خودم میداد


java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY

همایون افشاری
چهارشنبه 03 خرداد 1391, 20:39 عصر
این خطا به این معنیه که شما فقط می تونید Result set رو به سمت جلو پویش کنید و امکان عقب اومدن وجود نداره.

arezo1174
چهارشنبه 03 خرداد 1391, 21:22 عصر
سلام. این که گفتین ینی چی؟؟؟؟؟:گریه::گریه::گریه:

arezo1174
پنج شنبه 04 خرداد 1391, 20:41 عصر
سلام. ینی تا به حال هیچ کس با این exception برخورد نکرده؟؟؟؟؟؟؟؟

arezo1174
جمعه 05 خرداد 1391, 10:29 صبح
سلام. به قول کاربر sharfip ینی جواب ما رو هیچ کس نمیده؟؟؟؟؟؟:افسرده::افسرده:

همایون افشاری
جمعه 05 خرداد 1391, 16:02 عصر
تابع ResultSet.last() رو من توی کد ندیدم. از این تابع استفاده کردین؟
وقتی یه ResultSet رو به کمک last یا next های متوای تا آخر طی میکنید دیگه امکان اینکه برگردید و از سطر اول کار رو شروع کنید وجود نداره مگه اینکه دوباره ResultSet رو مقدار دهی کنید.

arezo1174
جمعه 05 خرداد 1391, 18:25 عصر
خوب کد زیر همین کارا میکنه دیگه :ناراحت:
ResultSet sr = st.executeQuery("select * from T_Film");
sr.last();