PDA

View Full Version : کد save در #C که من نوشتمش اما کلا" فکر کنم غلط هست یه نگاه بندازین ممنون



RIG000
پنج شنبه 09 اردیبهشت 1389, 23:00 عصر
private void btnSave_Click(object sender, EventArgs e)
{

DbDataAdapter = new OleDbDataAdapter("SELECT * FROM DB1",DbConnection);
OleDbCommandBuilder Cb = new OleDbCommandBuilder(DbDataAdapter);
try
{
DbConnection.Open();
Cd.Connection = DbConnection;
Cd.CommandText = "INSERT INTO DB1"+"(Name , Family,YMD,Time ,NoeBimari,NoeDarman)" + "VALUES (@Name,Family,YMD,Time,NoeBimari,NoeDarman); ";
Cd.Parameters.AddWithValue("@Name",textBox1.Text);
Cd.Parameters.AddWithValue("@Family",textBox2.Text);
Cd.Parameters.AddWithValue("@YMD",textBox3.Text);
Cd.Parameters.AddWithValue("@Time",textBox4.Text);
Cd.Parameters.AddWithValue("@NoeBimari", textBox5.Text);
Cd.Parameters.AddWithValue("@NoeDarman", textBox6.Text);
MessageBox.Show(" ");
}

finally
{
DbConnection.Close();
DbDataAdapter.Update(DataTable);
}

}

mmd2009
پنج شنبه 09 اردیبهشت 1389, 23:09 عصر
Cd.Parameters.AddWithValue("@NoeDarman", textBox6.Text);

در کد بالا قبل از نام فیلدت احتیاجی به @ نداری


(@Name,Family,YMD,Time,NoeBimari,NoeDarman)

در کد بالا قبل از معرفی نام فیلدت حتما باید @ بذاری


Cd.exenonquery

کد بالا رو هم باید بذاری بعد پارامترهات


(@Name,Family,YMD,Time,NoeBimari,NoeDarman); "

تو کد بالا اخرش هم به ; احتیاجی نیست

اینم یک مثال





con.Open()
cmd.CommandText = "INSERT INTO film(name,code,date_sabt,tozihat,tedad_keraie)Valu es(@name,@code,@date_sabt,@tozihat,@tedad_keraie)"
cmd.Parameters.AddWithValue("name", Trim(txtnamef.Text))
cmd.Parameters.AddWithValue("code", Trim(txtcodef.Text))
cmd.Parameters.AddWithValue("date_sabt", date_now)
cmd.Parameters.AddWithValue("tozihat", Trim(txttozihat.Text))
cmd.Parameters.AddWithValue("tedad_keraie", Trim(txttedad.Text))

cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()
cmd.Parameters.Clear()

mmd2009
پنج شنبه 09 اردیبهشت 1389, 23:10 عصر
البته اون Date_now که من نوشتم یک متغیر رشته ای هستش

RIG000
پنج شنبه 09 اردیبهشت 1389, 23:25 عصر
مرسی مهندس من رو برنامه ام اعمل میکنم اما اگه نتونستم لطفا"حواستون به تاپیکم باشه تا کمکم کنید بیشتر . ممنون هستم از شما

RIG000
پنج شنبه 09 اردیبهشت 1389, 23:27 عصر
آقا در ضمن نیاز ی به دو خط کد اولیم نیست؟ dataadabter , command

mohammad kafiyan
پنج شنبه 09 اردیبهشت 1389, 23:38 عصر
دوست عزیز سعی کن storedproceduer استفاده کنی هم امنیت و هم سرعت بیشتر است

RIG000
پنج شنبه 09 اردیبهشت 1389, 23:46 عصر
مهندسان عزیز من اینکارارو میکنم اما اگه شد همین کد من رو درستم میکردین ممنون میشدم . اگه هم نه باز هم ممنون جواب دادین چون تازه کارم زیاد با کد ها ور نرفتم تا حالا واسه همین یه کم سنگین هست برام ممن.ن

csharpprogramer88
جمعه 10 اردیبهشت 1389, 09:50 صبح
دوست من لطفا بر روي # (از ابزارهاي بالا )كليك كن و كدهايي را كه مي فرستي بين code قرار بده تا همه بتونن درست بخونن .
من يك دستور insert براي شما نوشتم از اونجا ييكه كدهاتونو خوب نتونستم بخونم به روش خودم براتون فرستادم



if (con.State == ConnectionState.Closed)//در صورتيكه كانكشن بسته بود باز كنه
{
con.Open();
}
if ((textBox1.Text == "") || (textBox2.Text == "")) //چك كنه فيلدهايي كه وارد كردن آنها الزامي است اگر وارد نشد پيام صادر بشه
{
MessageBox.Show("وارد كردن نام الزامي است", "پيغام خطا");
}
else
{
string strsql1 = "insert into DB1(Name,Family,YMD,Time ,NoeBimari,NoeDarman)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";//دستور درج در ديتابيس
cmd = new SqlCommand();
cmd.CommandText = strsql1;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("اطلاعات با موفقيت ذخيره شدند");

}



مشكل داشتيد بپرسيد

RIG000
جمعه 10 اردیبهشت 1389, 10:16 صبح
آقا دست درد نکنه اما دوباره به یه مشکلی خوردم که از هر سایتی پرسیدم نتونستن جواب بدن راستش کد شما هم تو cmd.ExecuteNonQuery() خطا داد و خطاش هم Syntax Error INSERT INTO Statment موندم چیکار کنم . تو برنامه های قبلی هم به این مشکل خوردم نمی دونم مشکل ز کجاست؟ از بانک هست یا چیز های دیگه ؟ اشک منو در آورده

RIG000
جمعه 10 اردیبهشت 1389, 10:22 صبح
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace MATAB_PEZESHKI
{
public partial class New : Form
{
OleDbConnection DbConnection= new OleDbConnection();
OleDbDataAdapter DbDataAdapter= new OleDbDataAdapter ();
DataTable DataTable = new DataTable ();
OleDbCommand cmd;
public New()
{
InitializeComponent();

DbConnection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\MATABPEZESHKIDB.mdb";

}

private void New_Load(object sender, EventArgs e)
{

}

private void btnSave_Click(object sender, EventArgs e)
{


DbConnection.Open();


string strsql1 = "insert into DB1(Name,Family,YMD,Time ,NoeBimari,NoeDarman)values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')";//دستور درج در ديتابيس
cmd = new OleDbCommand();
cmd.CommandText = strsql1;
cmd.Connection = DbConnection;
cmd.ExecuteNonQuery();
cmd.Clone();

MessageBox.Show("اطلاعات ذخیره شد");

DbConnection.Close();
}

private void btnSave_KeyPress(object sender, KeyPressEventArgs e)
{

}
}
}

مهندس در ضمن cmd.close ندارم close نداره تو خاصیت هاش جاش clone داره؟!!!!!!!!!!!!!!!!!!

mmd2009
جمعه 10 اردیبهشت 1389, 11:17 صبح
دوست عزیز شما داری بانک اکسس رو به برنامه تعریف میکنی ولی اون دوستمون بانک sql واسه شما نوشته

اگه شما هم داری از بانک sql استفاده می کنی باید از using System.Data.SqlClient; استفاده بکنی اگه اشتباه نکنم

mmd2009
جمعه 10 اردیبهشت 1389, 11:33 صبح
دوست عزیز یک مثال واسط زدم دیگه خودت تغییرات رو بده داخلش و اون چیزی رو که دوست داری داخل بانکت وارد بشه رو جای فیلدهای که من گذاشتم بذار

یه پیشنهاد هم بهت بکنم سعی کن واسه جعبه متن هات حتما اسم بذاری تا گیج نشی بعدا

من اینبار به خاطر شما اسمی نذاشتم ولی شما سعی کن حتما اسم بذاری واسه جعبه متن هات

RIG000
جمعه 10 اردیبهشت 1389, 11:57 صبح
آقا دستت درد نکنه از همتون ممنونم مهندسان عزیز . آقا مثالت رو ور میدارم . امیدورام که دیگه به مشکل نخورم . اگه مشکلی شد دوباره مزاحم میشم با شرمندگی.

ucnazard
جمعه 10 اردیبهشت 1389, 12:06 عصر
این کد درسته
الان تو برنا مه ام استفاده میکنم موفق باشی

RIG000
جمعه 10 اردیبهشت 1389, 13:13 عصر
مهندسان عزیز ممنونم اما بازم هم مشکل میگیره خواهشا" این مشکل رو حل کنین .برنامه رو گذاشتم البته همین قسمت save رو یه نگا ه هم به بانکش بندازین ممنون میشم این مشکل رو هم میبینین 100 در 100 لطفا بگید هم این مشکل کجاست اگه یه ترمیم میکردن ممنون میشدم ازتون

ucnazard
جمعه 10 اردیبهشت 1389, 15:41 عصر
مهندسان عزیز ممنونم اما بازم هم مشکل میگیره خواهشا" این مشکل رو حل کنین .برنامه رو گذاشتم البته همین قسمت save رو یه نگا ه هم به بانکش بندازین ممنون میشم این مشکل رو هم میبینین 100 در 100 لطفا بگید هم این مشکل کجاست اگه یه ترمیم میکردن ممنون میشدم ازتون

یه بار حالا امتحان کن ببین حله یا نه؟؟

RIG000
جمعه 10 اردیبهشت 1389, 16:32 عصر
مهندس باز هم اشکال میگره باز هم رو cmd.ExecuteNonQuery(); تو سیستم شما مشکلی نداشت؟

csharpprogramer88
جمعه 10 اردیبهشت 1389, 18:38 عصر
مهندس از ارور از فيلد time جدوله من وقتي تغيير دادم درست شد البته كد شما را هم دستكاري كردم براتون ميفرستم اول شما پروژه خودتونو پس از تغيير نام دادن فيلد time چك كنيد سپس اگر جواب نگرفتيد از پروژه من استفاده كنيد و نتيجه را به من بگوييد
التماس دعا

RIG000
جمعه 10 اردیبهشت 1389, 19:08 عصر
مهندس برنامه تو تو سیستمم کار کرد اما من که تغییرش دادم واسه خودمو جواب نداد موندم چیکار کنم .......
با کد های من نتونستین به برنامه اطلاعات اضافه کنین؟؟این ارور دیونم کرده.

csharpprogramer88
جمعه 10 اردیبهشت 1389, 19:47 عصر
خوب دوست من كدهاي منو عينا كپي كن حله فيلد را هم تغيير بده.
شما رفتي توي اكسس و فيلد time را تغيير دادي ؟ اگر تغيير داده باشي و اين كدي كه فرستاديد را در پروژه هاي ديگر استفاده كرده باشيد و مشكل نداشته پس بايد درست كار كنه
من در پروژه اي كه فرستادم نام فيلد time را saat گذاشتم
اينقدر هم از تاپيك خودت خارج نشو مشكلي داشتي سريعتر بفرست جواب ميدم

ucnazard
جمعه 10 اردیبهشت 1389, 20:56 عصر
مهندس باز هم اشکال میگره باز هم رو cmd.ExecuteNonQuery(); تو سیستم شما مشکلی نداشت؟

دقیق بگو مشکل cmd.executenonqueryچیه؟چه اروری میده؟

RIG000
دوشنبه 13 اردیبهشت 1389, 19:06 عصر
دقیق بگو مشکل cmd.executenonqueryچیه؟چه اروری میده؟

اقا زیپ برنامه رو که گذاشتم اما مشکل اینه که میگه SYNTAX ERrore insert tabel staemanet

csharpprogramer88
پنج شنبه 16 اردیبهشت 1389, 00:17 صبح
اقا زیپ برنامه رو که گذاشتم اما مشکل اینه که میگه SYNTAX ERrore insert tabel staemanet

دوست عزيز مگر مشكلتان حل نشده من كه براتون مشكل را حل كردم و هم منبع مشكل و هم راه حل را به عرض رسوندم

RIG000
پنج شنبه 16 اردیبهشت 1389, 00:29 صبح
دوست عزيز مگر مشكلتان حل نشده من كه براتون مشكل را حل كردم و هم منبع مشكل و هم راه حل را به عرض رسوندم
شما کارتون درست بود اما واسه من با کد شما هم اشکال میگیره موضوع اینه که میخام بدونم مشکل چیه و کجاست؟