سلام. بله از 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)
Printable View
سلام. بله از 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)
ببخشید من به جای کاربر قبلی جواب دادم آخه مشکله منم همینه با اجازه ی arezo1174 کداشا کپی کردم هر کاری که این خانم گفته منم کردم ولی همچنان مشکل برطرف نشده.
سلام.
در واقع مشکل اینه که بعد از اجرای این کد دیتابیس update نمیشه ؟
سلام.
در واقع مشکل اینه که بعد از اجرای کد دیتابیس update نمی شه؟
منظورت از اینکه "دستی مشکل ندارم" چیه؟
سلام
چه خوب که همه هستن:لبخند:
اولا اینکه اشکال نداره همون جور هم که بیداست این یه سایت open source:لبخندساده:
بعدم خوشحالم که یه عده دارن مطلب رو دنبال میکنن.
بله آقا خروجی منم همین بود، بله update نمیشه در ضمن اگه مطالب قبلی رو خونده باشین با کمک spaiderman حذف و درج رو انجام دادیم ینی مشکلی توی ارتباط با sql نیست.
این طور که به نظر می رسه کد مشکلی نداره.
از چه دیتابیسی استفاده می کنید.
سعی کنید خروجی ای که توی قسمت قبل گفتم رو مستقیما توی دیتابیس اجرا کنید.
آیا trigger ی برای update توی دیتابیس تعریف کردید؟
sql server2005
نه از تریگر استفاده نکردم.
منظورتون از اینکه مستقیم توی دیتابیس استفاده کنم چیه؟
ینی توی sql server تو قسمت new query اجرا کنم؟
اگه منظور شما همینه که من اینا اجرا کردم مشکلی هم نبوده
update T_Film set bazigaran='mohammadi' where name_film='y'
اینم خروجی
(1 row(s) affected)
وگرنه اگه امکانش هست یکم راهنمایی کنید چون من روش دیگه ای بلد نیستم:افسرده:
بله همونجا.
البته یه نکته. ممکنه مشکل از کدی باشه که کپی کردید. سعی کنید خط
String sqlu = "update T_Film set bazigaran='%s' where name_film='%s'";
رو خودتون دستی بنویسید.
ممکنه به جای ' اشتباها ` (کلید بالای tab) استفاده شده باشه.
ببخشید این وسط من یه پارازیت بندازم.
اگه بخوایم که نتیجه را در یه jtable مشاهده کنیم باید چه کار کنیم؟ مثلا بخوایم که درج رو در jtable ببینینم که درج شده یا نه چکار باید بکنیم؟نیازی به کدنویسی داره یا اینکه میشه از طریق property باید تنظیمات خاصی را انجام بدیم؟
دستی هم وارد کردم درست بود نه مطمئن هستم که سینگل کوتیشن میگیرم
'دسته'
مشکل تو همون %s شک ندارم.
مشکل دیگه ای که به ذهن من می رسه اینه که ممکنه رشته ای که توی textfield در ج می شه از نظر کدینگ با مقداری که توی دیتابیس برای name_film ذخیره شده متفاوت باشه. در مورد متد حذف هم مقدار رو با textfield می گیرید؟
بله از طریق همون jtextfield هم درج و هم حذف میکنم.
توی نتبینز که از نوع stringتعریف شده، تو sql هم ncharتعریف کردم
هر دو از نوع رشته ست.
به نظر من کد مشکلی نداره!!
ممکنه تکراری باشه اما این کار ها رو به ترتیب انجام یدید :
1- کدی که مقدار sqlu رو توی خروجی چاپ می کنه اجرا کنید.
System.out.println(sqlu);
2- خروجی رو کپی کنید و بعد عینا داخل new query بزارید.
3- حالا query رو اجرا کنید.
حضار محترم منم هستم سوال پرسیدم به منم توجه کنید افسرده میشم:گریه:
jtable توی فرم موجوده ؟
یعنی می تونی اطلاعات حال حاضر دیتابیس رو توش ببینی ؟
بله درگ کردم
نه نمیتونم ببینم یعنی تنظیمات لازم را نمیدونم میدونم توی C# روی دیتاگردویو کلیک راست میکنی و یک سری مراحل رو طی میکنی تا با بانک ارتباط برقرار بشه ولی اینجا نمیدونم باید چه کار کرد؟؟
یه نکته دیگه!!
این قسمت رو به کمک 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 دقت کنید!!)
من الان به netBeans دسترسی ندارم و دقیقا نمی تونم بگم که چی کار کنی. با یه کم سرچ می تونی tutorial مناسبو (!) پیدا کنی.
ببخشید یه سوال؟؟
توی نتبینز گاهی بعد از اجرا توی قسمت دیزاین بعضی از خطا خاکستری میشه خطی که خودم نوشتم مثل این میمونه که قفل کرده هیچ تغییری نمیزاره بدیم تو این مواقع چه کار کنیم؟؟
مرسی از جواب هایی که دادین.
تشکر.
tutorial ی که فرمودین چی هست؟؟؟
مرسی از اساتیدی که تا الان ما رو همراهی کردن:لبخندساده:
منظورم از tutorial (در جواب سوال قبلی sharifip) همون آموزش گام به گام خودمونه !!!!نقل قول:
tutorial ی که فرمودین چی هست؟؟؟
خیلی وقته با netbeans کار نکردم ولی فکر می کنم در اون حالت برنامه باید در حال اجرا باشه. برای اینکه بتونید کد رو تغییر بدید باید اجرای برنامه متوقف باشه.نقل قول:
توی نتبینز گاهی بعد از اجرا توی قسمت دیزاین بعضی از خطا خاکستری میشه خطی که خودم نوشتم مثل این میمونه که قفل کرده هیچ تغییری نمیزاره بدیم تو این مواقع چه کار کنیم؟؟
یا اینکه ممکنه اون بخش از کد دارای وابستگی هایی باشه که تغییرش در برنامه خطا ایجاد می کنه. میشه در قسمت دیزاین گرافیکی تغییر رو اعمال کرد.
مشکل insert حل شد ؟
بله حل شده قبلا با استاد spaiderman حل کردیم.
برنامه در حال اجرا نیست میدونم اینا:لبخندساده:
این کار رو که تو پست 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();
}
سلام. اشکال کار یافتم استاد این بار به sqlu ربطی نداشت من وقتی format مینوشتم اتوماتیک خودش برام میزد و منم همون رو قبول میکردم نگو جای فیلم و بازیگر باهم جا به جاست، جابهجا که کردم خودش درست:لبخند:
ممنونم از همتون به از استاد spaiderman که منا تحمل میکنه و صبورانه جواب میده:لبخندساده:
sqlu = String.format(sqlu, bazigar,film);
سلام مجدد به همه ی اساتید محترم:لبخندساده:
این مطلب هم برای کاربر 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_manege r","","");
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());
}
}
از مطالب سایت زیر استفاده کنید. بعد اگه مشکلی بود مطرح کنید.
http://java.tadbirpoya.ir/articles/JAVA%20SE/JTable.htm
سلام. این سایتا قبلا دیدم؛ به نتیجه ای که رسیدم کدای که گذاشتم به هر حال مرسی.
من اومدم به صورت دستی یه جدول بر کردم با کدای زیر هیچ مشکلی هم نبود ولی توی کدای قبلی هر کاری کردم داده رو از جدول نخوند.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String[] hdr={"ID","last name","first name"};
Object[][] data=
{
{100,"aaaaaaa","qqqqqq"},{101,"www","hhh"},{102,"m ohammad","sha"}
};
jTable1 =new JTable(data,hdr);
jScrollPane1.setViewportView(jTable1);
}
بعد از حلقه while کد زیر را بزارید و بعد نتیجه رو بررسی کنید (که آیا اصلا چیزی وارد آرایه میشه یا نه)
for(int j=0; j<i; j++)System.out.println(data[j][0]);
من برنامه رو به این صورت هم نوشتم
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)
خوب مقدار جدول مگه نه اینکه باید با تعداد سطرها rc و تعداد ستون ها cc باید پر بشه که به آرایه dataتخصیص داده میشه حتی اگه جدول هم خالی باشه ینی هیچ رکوردی نداشته باشه باید مقدار header رو توی جدول نشان بده که اونم نشون نمیده به Resultset گیر میده، دستوری که شما گفتین به #83(کد قبلی) اضافه کردم همون خطای قبلی رو داد(Result set Type is TYPE_FORWARD_ONLY).
با سپاس فراوان.
در این صفحه قسمت "ساختن مدلي از جدول " رو بخونید.
http://java.tadbirpoya.ir/articles/J...20Tutorial.htm
استفاده از مدل جدول ، بهترین را برای رسم جدول هست. و میتونید کاملا جدول رو کنترل کنید.
استاد، جناب این ساتا قبلا دیدم که توسط خودتون به کابرای دیگه توصیه کردین ولی بازم نگاه کردم این اومده به صورت دستی به جدول مقدار داده
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 .
منم منتظرم که فرشته ی نجاتمون از راه برسه و ما را نجات بده:گریه::گریه::گریه:
اینم یه کد کاملا داینامیک که جدول دیتابیس رو کاملا توی یه 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);
این کد کاملا جواب میده
اگه احیانا جاییشو متوجه نشدید ، بگید تا توضیح بدم.
خروجی این کد رو بزارید ببینیم مشکل از کجاست :
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);
}
}
سلام. مرسی از جوابتون
نوشته ی استاد spaiderman که به متغیر c درون حلقه ی for گیر میده هر جور که تعریف کردم نشد بیرون از حلقه، با یه نام دیگه و... خلاصه نشد.
و اما تغییرات استاد افشاری اونم جواب نداد:عصبانی++:
خروجی استاد افشاری
init:
deps-jar:
compile:
run:
select * from T_Film where name_film='y'
سلام. مرسی از جوابتون
نوشته ی استاد spaiderman که به متغیر c درون حلقه ی for گیر میده هر جور که تعریف کردم نشد بیرون از حلقه، با یه نام دیگه و... خلاصه نشد.
و اما تغییرات استاد افشاری اونم جواب نداد:عصبانی++:
خروجی استاد افشاری
init:
deps-jar:
compile:
run:
select * from T_Film where name_film='y'
کد من به هیچ عنوان مشکلی نداره. چون تستش کردم.
کدی که گذاشتم یه کد که خودتون باید قاطی بقیه ی کدهاتون بکنیدش.
کار خیلی ساده ایه. نمیدونم چرا اینقدر گیر میاد توی کار شما.اگه دوست داشتید کل برنامتونو اینجا بذارید، تا من واستون جدولشو راه بندازم.
موفق باشید
سلام. میدونم که یه سری از کدا رو خودم باید بهش اضافه کنم این کارم کردم. خیلی ممنون.
مرسی دست شما درد نکنه خودم شروع کردم خودمم باید تمومش کنم.:افسرده:
فکر می کنم لااقل برای خط 21 کد باید یه چیزی نمایش داده بشه.
بهر حال این نشون میده که ResultSet خالیه و ممکنه مشکل از متد search باشه.